#CF4103. 字符替换
字符替换
题目描述
您将得到一个由小写字母组成的字符串 。每次操作,可以选择一个字母并将字符串中的所有该字符替换为 0
,也可以将所有的该字母都替换为 1
。
是否可以在执行若干次上述操作后,原字符串转化为交替的二进制字符串†?
例如,考虑字符串 abacaba
。您可以执行以下动作:
- 将
a
替换为0
。现在字符串为0b0c0b0
。 - 将
b
替换为1
。现在字符串是010c010
。 - 将
c
替换为1
。现在字符串是0101010
。
这是一个交替的二进制字符串。
†交替二进制字符串是一个由 0
和 1
构成的字符串,且不能连续出现同一个字符。例如,01010101
、101
、1
是交替的二进制字符串,但0110
、0a0a0
、10100
不是。
输入格式
输入由多个测试用例组成。第一行包含一个整数 ——测试用例的数量。
每个测试用例的第一行包含一个整数 ,即字符串 的长度。
每个测试用例的第二行包含一个由 个小写字母组成的字符串,即字符串 。
输出格式
对于每个测试用例,如果可以将字符串转换为交替的二进制字符串,则输出 YES
,否则输出 NO
。
答案不计大小写。
测试样例
8
7
abacaba
2
aa
1
y
4
bkpt
6
ninfia
6
banana
10
codeforces
8
testcase
YES
NO
YES
YES
NO
YES
NO
NO
样例说明
第一个测试用例的解释见题目描述。
在第二个测试用例中,您可以生成的唯一可能的二进制字符串是 00
和 11
,它们都不是交替的。
在第三个测试用例中,您可以生成 1
,这是一个交替的二进制字符串。