#CSP1206. 回文串 (palindrome)
回文串 (palindrome)
题目描述
对于一个字符串,如果其从左向右读和从右向左读结果完全一致,则称其为回文串。
小 Y 最近在研究回文子串结构,他恰好有一个文本串 。他想通过把 中的字符重新排列,得到另一个字符串 ,使得:
对于任意 , 长度为 的前缀都不是回文串,也就是 都不是回文串。
但小 Y 发现重排的过程非常复杂,他常常顾此失彼,因此他决定把这个任务交给你!
输入格式
从 palindrome.in
文件读入数据。
第一行包含一个整数 ,表示数据组数。
对于每个测试数据,输入一行一个小写字母组成的字符串 。
输出格式
输出到 palindrome.out
文件。
对于每组测试数据:
如果不存在合法的构造,输出一行,内容为字符串 NO
。
否则,输出两行,第一行内容为字符串 YES
,第二行为你重排后符合要求的字符串 。如果有多个合法构造,输出任意一个即可。
样例 1
5
a
sos
abba
icpc
tenet
YES
a
YES
oss
NO
YES
icpc
YES
tente
可以证明,对于第三个情况没有合法的构造。
数据范围
对于每个测试点, 保证 所有 的长度之和
子任务 | 分数 | 附加约束条件 |
---|---|---|
的长度 ,所有 的长度之和 | ||
中只有两种字符 | ||
中存在某个字符只出现过一次 | ||
无附加限制 |
Related
In following contests: