CF1632A ABC

题目描述

最近,179 中学的学生们开发了一种独特的算法,该算法以一个二进制字符串 $s$ 作为输入。然而,他们很快发现,如果 $s$ 的某个子串 $t$ 是长度大于 1 的回文串,算法就会出错。学生们能否通过重新排列 $s$ 的字符,使得算法在该字符串上能够正确运行? 二进制字符串是指每个字符都是 0 或 1 的字符串。 如果字符串 $a$ 可以通过从字符串 $b$ 的开头删除若干(可能为零或全部)字符,并从结尾删除若干(可能为零或全部)字符得到,则称 $a$ 是 $b$ 的子串。 回文串是指正着读和反着读都相同的字符串。

输入格式

每个测试点包含多组测试用例。第一行包含测试用例的数量 $t$($1 \le t \le 100$)。接下来是每组测试用例的描述。 每组测试用例的第一行包含一个整数 $n$($1 \le n \le 100$),表示字符串 $s$ 的长度。 每组测试用例的第二行包含一个长度为 $n$ 的字符串 $s$,仅由字符 0 和 1 组成。

输出格式

对于每组测试用例,如果可以通过重新排列 $s$ 的字符,使得不存在长度大于 1 的回文子串,则输出 YES(不区分大小写);否则输出 NO(不区分大小写)。

说明/提示

在前三个测试用例中,给定的字符串不包含长度大于 1 的回文子串,因此答案为 YES。 在最后一个测试用例中,不可能通过重新排列字符使得字符串不包含长度大于 1 的回文子串,因此答案为 NO。 由 ChatGPT 4.1 翻译