问题 6159 --ABC字符串

6159: ABC字符串★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 50  解决: 24
[提交][状态][命题人:]

题目描述

定义:ABC字符串是一个长度为n的字符串an是偶数),且字符串a仅有'A''B''C'组成,即字符串a中的任意一个元素ai必为'A''B''C'这三类字符之一。

括号序列是只包含字符"("")"的字符串。规定:正则括号序列是一种可以通过在括号序列的原始字符之间插入字符“1”“+”转换成正确算术表达式的括号序列。例如,括号序列"()()""(())"是正则括号序列(结果表达式可以是:"(1)+(1)""((1+1)+1)"),而")(""(" ")"都不是正则括号序列。

现给我们一个ABC字符串,请问是否可以找到一个字符串b满足以下条件:

1b是一个长度为nn为偶数)的正则括号序列;

2)对于所有的整数ij (1≤i, j≤n),如果ai=aj,则必有:bi=bj,即:字符串a中相同的字符会转换为字符串b中相同的括号,也就是说用相同类型的括号替换所有出现的“A”,然后用相同类型的括号替换所有出现的“B”,用相同类型的括号替换所有出现的“C”

      如果可以找到满足要求的字符串b,则输出:“YES”,否则输出:“NO”。

输入

        第一行一个整数t(1≤t≤1000):测试用例数;

        接下来共t行,每个测试用例一行一个仅由'A''B''C'三种字符组成的ABC字符串;

        测试数据确保:每个ABC字符串的长度n满足:2≤n≤50

输出

输出共t行,每个测试用例一行。如果可以找到满足要求的正则括号序字符串b,则输出:“YES”,否则输出:“NO”。

样例输入
Copy
4
AABBAC
CACA
BBBBAC
ABCA
样例输出
Copy
YES
YES
NO
NO

提示

对于第一个测试用例:

将‘A’替换为‘(’,‘B’替换为‘)’,‘C’替换为‘)’,则可以得到字符串b:“(())()”, b为正则括号序列字符串。

对于第二个测试用例:

将‘A’替换为‘)’,‘C’替换为‘(’,则可以得到字符串b:“()()”, b为正则括号序列字符串。

显然,第三个测试用例和第四个测试用例都无法得到正则括号序列字符串b

来源

 

[提交][状态]