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" 移到字符串的开头,此时字符串不会改变。