CF1837B Comparison String
题目描述
给定一个长度为 $n$ 的字符串 $s$,其中每个字符都是 < 或 >。
如果一个包含 $n+1$ 个元素的数组 $a$ 满足对于每个 $1 \le i \le n$,字符 $s_i$ 表示 $a_i$ 和 $a_{i+1}$ 的比较结果,即:
- 当且仅当 $a_i < a_{i+1}$ 时,$s_i$ 为 a_{i+1}$ 时,$s_i$ 为 >。
例如,数组 $[1, 2, 5, 4, 2]$ 与字符串 兼容。还有其他数组也与该字符串兼容,例如 $[13, 37, 42, 37, 13]$。
数组的代价定义为其中不同元素的个数。例如,$[1, 2, 5, 4, 2]$ 的代价为 $4$,$[13, 37, 42, 37, 13]$ 的代价为 $3$。
你需要计算所有与给定字符串 $s$ 兼容的数组中,最小的代价。
输入格式
第一行包含一个整数 $t$($1 \le t \le 500$),表示测试用例的数量。
每个测试用例包含两行:
- 第一行包含一个整数 $n$($1 \le n \le 100$);
- 第二行包含一个长度为 $n$ 的字符串 $s$,每个字符都是 < 或 >。
输出格式
对于每个测试用例,输出一个整数,表示所有与给定字符串 $s$ 兼容的数组中最小的代价。
说明/提示
在示例的第一个测试用例中,数组可以为 $[13, 37, 42, 37, 13]$。
在示例的第二个测试用例中,数组可以为 $[42, 37, 13, 37, 42]$。
由 ChatGPT 4.1 翻译