#416. 无聊的字符串
无聊的字符串
题目描述
正如题目所说,你有一个非常无聊的字符串,但是你厌倦了无所事事,于是你为自己想出了一个游戏。
给定一个字符串 和一个偶数 。你可以对其进行两种操作:
- 将字符串 的反转字符串添加到 的末尾(例如,如果 cpm,操作后 cpmmpc)。
- 将当前字符串 反转(例如,如果 cpm,操作后 mpc)。
要求你在恰好进行 次操作后,得到字典序最小的字符串。注意,你可以以任意顺序选择不同类型的操作,但总共必须恰好进行 次操作。
字符串 的字典序小于字符串 当且仅当满足以下条件之一:
- 是 的前缀,且 ;
- 在 和 第一个不同的位置, 的字母在字母表中比 的对应字母更靠前。
输入格式
每个测试点包含多组测试用例。第一行包含一个整数 ()——测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个偶数 ()——对字符串 进行的操作次数。
每个测试用例的第二行包含一个字符串 (),仅由小写英文字母组成——要进行操作的字符串。
输出格式
对于每个测试用例,输出一行,表示经过恰好 次操作后可以得到的字典序最小的字符串。
输入输出样例
5
4
cpm
2
grib
10
kupitimilablodarbuz
1000000000
capybara
6
abacaba
cpm
birggrib
kupitimilablodarbuz
arabypaccapybara
abacaba
说明/提示
在第一个测试用例中,你可以对字符串 进行 次第二种操作(即反转字符串)。这样字符串 会保持为 cpm。
在第二个测试用例中,你可以这样操作:
- 先进行一次第二种操作(反转字符串 ),此时 变为 birg。
- 再进行一次第一种操作(将反转后的 添加到末尾),此时 变为 birggrib。