CF1805B The String Has a Target
题目描述
给你一个字符串 $s$。你只允许对这个字符串进行一次操作:选择下标 $i$,将字符 $s_i$ 移动到字符串的开头(删除原位置上的字符)。例如,如果以下标 $i=4$ 对字符串 "abaacd" 进行此操作,我们得到字符串 "aabacd"。请问通过这种操作可以得到字典序最小的字符串是什么?
请注意:字典序小指当且仅当以下条件成立:
- 在第一个 $a$ 和 $b$ 不一样的位置上,$a$ 中的字母在字母表中的顺序比 $b$ 中的字母先。
输入格式
每个测试数据包含多组测试用例。第一行包含一个整数 $t$ ($1\le t\le 10^4$)表示测试用例数量。接下来是 $t$ 组测试用例。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 10^5$)——字符串的长度。
每个测试用例的第二行包含一个长度为 $n$ 的字符串 $s$,由小写字母组成。
保证所有测试用例的 $n$ 的总和不超过 $10^5$。
输出格式
对于每个测试用例,输出一个单独的字符串,它是应用操作后可以得到的字典序最小字符串。
说明/提示
对于第一个测试用例,你需要把最后一个字符移动到字符串的开头。
对于第二个测试用例,你需要把第二个字母 "a" 移动到字符串的开头。
对于第三个测试用例,你可以将第一个字母 "a" 移到字符串的开头,此时字符串不会改变。