CF1494A ABC String

题目描述

给定一个长度为 $n$ 的字符串 $a$,其中 $n$ 为偶数。对于每个 $i$($1 \leq i \leq n$),$a_i$ 只能是 'A'、'B' 或 'C'。 括号序列是仅包含字符 "(" 和 ")" 的字符串。一个合法的括号序列是指可以通过在原序列的字符之间插入 "1" 和 "+",将其转化为正确的算术表达式。例如,括号序列 "()()" 和 "(())" 是合法的(对应的表达式分别为 "(1)+(1)" 和 "((1+1)+1)"),而 ")("、"(" 和 ")" 都不是合法的括号序列。 你需要找到一个长度为 $n$ 的字符串 $b$,使得: - $b$ 是一个合法的括号序列; - 如果对于某些 $i$ 和 $j$($1 \leq i, j \leq n$),有 $a_i = a_j$,则 $b_i = b_j$。 换句话说,你需要用同一种括号替换所有的 'A',用同一种括号替换所有的 'B',用同一种括号替换所有的 'C'。 你的任务是判断是否存在这样的字符串 $b$。

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 1000$),表示测试用例的数量。 接下来每个测试用例包含一行字符串 $a$。$a$ 只包含大写字母 'A'、'B' 和 'C'。设 $n$ 为 $a$ 的长度。保证 $n$ 为偶数,且 $2 \leq n \leq 50$。

输出格式

对于每个测试用例,如果存在满足条件的字符串 $b$,输出 "YES";否则输出 "NO"。 你可以用任意大小写输出答案(例如 yEs、yes、Yes 和 YES 都被认为是正确的正答)。

说明/提示

在第一个测试用例中,其中一种可能的字符串 $b$ 是 "(())()"。 在第二个测试用例中,其中一种可能的字符串 $b$ 是 "()()"。 由 ChatGPT 4.1 翻译