CF1805B.The String Has a Target

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

The String Has a Target

题目描述

给你一个字符串 ss。你只允许对这个字符串进行一次操作:选择下标 ii,将字符 sis_i 移动到字符串的开头(删除原位置上的字符)。例如,如果以下标 i=4i=4 对字符串 "abaacd" 进行此操作,我们得到字符串 "aabacd"。请问通过这种操作可以得到字典序最小的字符串是什么?

请注意:字典序小指当且仅当以下条件成立:

  • 在第一个 aabb 不一样的位置上,aa 中的字母在字母表中的顺序比 bb 中的字母先。

输入格式

每个测试数据包含多组测试用例。第一行包含一个整数 tt (1t1041\le t\le 10^4)表示测试用例数量。接下来是 tt 组测试用例。

每个测试用例的第一行包含一个整数 nn(1n1051 \le n \le 10^5)——字符串的长度。

每个测试用例的第二行包含一个长度为 nn 的字符串 ss,由小写字母组成。

保证所有测试用例的 nn 的总和不超过 10510^5

输出格式

对于每个测试用例,输出一个单独的字符串,它是应用操作后可以得到的字典序最小字符串。

说明/提示

对于第一个测试用例,你需要把最后一个字符移动到字符串的开头。

对于第二个测试用例,你需要把第二个字母 "a" 移动到字符串的开头。

对于第三个测试用例,你可以将第一个字母 "a" 移到字符串的开头,此时字符串不会改变。

样例

4
3
cba
4
acac
5
abbcb
4
aaba
acb
aacc
abbcb
aaab

在线编程 IDE

建议全屏模式获得最佳体验