#CF2047B. 替换字符
替换字符
B. 替换字符
每个测试点时间限制: 秒
每个测试点内存限制: 兆字节
给定一个长度为 的字符串 ,仅由小写英文字母组成。
你必须恰好执行一次以下操作:
- 选择任意两个下标 和 ()。可以选择 。
- 令 。
你需要最小化 的不同排列† 的数量。输出执行恰好一次操作后,具有最少不同排列数的任意一个字符串。
† 字符串的排列是指将其字符按任意顺序重新排列。例如,"bac" 是 "abc" 的一个排列,但 "bcc" 不是。
输入
每个测试包含多个测试用例。第一行包含整数 (),表示测试用例的数量。
每个测试用例的描述如下:
第一行包含 ()——字符串 的长度。
第二行包含长度为 的字符串 ,仅由小写英文字母组成。
输出
对于每个测试用例,输出执行恰好一次操作后所需的字符串。如果有多个解,输出任意一个。
样例
输入
6
3
abc
4
xyyx
8
alphabet
1
k
10
aabbccddee
6
ttbddq
输出
cbc
yyyx
alphaaet
k
eabbccddee
tttddq
样例解释
第一个测试用例:通过一次操作可以得到的字符串有 "abc"、"bbc"、"cbc"、"aac"、"acc"、"aba" 和 "abb"。
"abc" 有 种不同排列:"abc"、"acb"、"bac"、"bca"、"cab"、"cba"。
"cbc" 有 种不同排列:"bcc"、"cbc"、"ccb",这是所有可得到的字符串中最少的。实际上,除了 "abc" 之外的所有可得到字符串都有 种排列,因此其中任何一个都会被接受。