CF1156B Ugly Pairs

题目描述

给定一个只包含小写拉丁字母的字符串。 如果字符串中一对相邻的字母在字母表中也是相邻的,则称这对字母为“丑陋对”。例如,字符串 "abaca" 在位置 $(1, 2)$ — "ab" 和 $(2, 3)$ — "ba" 处包含丑陋对。字母 'a' 和 'z' 不被认为在字母表中相邻。 你能否重新排列给定字符串的字母,使得其中不包含任何丑陋对?你可以任意排列字符串中的字母,但不能添加或删除字母,也可以保持原顺序不变。 如果有多种答案,输出任意一种即可。 你需要回答 $T$ 个独立的询问。

输入格式

第一行包含一个整数 $T$($1 \le T \le 100$)——表示询问的数量。 接下来的 $T$ 行,每行包含一个字符串 $s$($1 \le |s| \le 100$)——表示本次询问的字符串。保证字符串只包含小写拉丁字母。 注意,在 hack 数据中需设置 $T = 1$。

输出格式

输出 $T$ 行,第 $i$ 行为第 $i$ 个询问的答案。 如果第 $i$ 个询问存在答案,则输出一个重新排列后的字符串,使其不包含任何丑陋对。你可以任意排列字符串中的字母,但不能添加或删除字母,也可以保持原顺序不变。 如果存在多种答案,输出任意一种即可。 否则,输出 "No answer"。

说明/提示

在第一个样例中,"bdac" 也是正确答案。 第二个样例说明只有字母表中相邻的字母不能相邻。相同字母可以相邻。 第三个样例有很多合法答案。 由 ChatGPT 4.1 翻译