#CF4103. 字符替换

字符替换

题目描述

您将得到一个由小写字母组成的字符串 ss。每次操作,可以选择一个字母并将字符串中的所有该字符替换为 0,也可以将所有的该字母都替换为 1

是否可以在执行若干次上述操作后,原字符串转化为交替的二进制字符串†?

例如,考虑字符串 abacaba。您可以执行以下动作:

  • a 替换为 0。现在字符串为 0b0c0b0
  • b 替换为 1。现在字符串是 010c010
  • c 替换为 1。现在字符串是 0101010

这是一个交替的二进制字符串。

†交替二进制字符串是一个由 01 构成的字符串,且不能连续出现同一个字符。例如,010101011011是交替的二进制字符串,但01100a0a010100 不是。

输入格式

输入由多个测试用例组成。第一行包含一个整数 t(1t100)t(1≤t≤100) ——测试用例的数量。

每个测试用例的第一行包含一个整数 n(1n2000)n(1≤n≤2000),即字符串 ss 的长度。

每个测试用例的第二行包含一个由 nn 个小写字母组成的字符串,即字符串 ss

输出格式

对于每个测试用例,如果可以将字符串转换为交替的二进制字符串,则输出 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

样例说明

第一个测试用例的解释见题目描述。

在第二个测试用例中,您可以生成的唯一可能的二进制字符串是 0011,它们都不是交替的。

在第三个测试用例中,您可以生成 1,这是一个交替的二进制字符串。