删除左侧 l 个字符、右侧 k−l 个字符后,剩下的一定是原串的一个连续子串,长度固定为
m=n−k并且这个子串的起点一定是某个 l,其中
给定一个长度为n的字符串s=s0s1...sn−1(仅由小写字母组成)和一个整数k。你可以在字符串头部与尾部“合计”删除恰好k个字符:即选择某个l(0≤l≤k),先删除最左侧的l个字符,再删除最右侧的k−l个字符,得到长度为n−k的新字符串。
请你在所有可得到的新字符串中,找出字典序最小字符串。
[名词解释]
字符串的字典序比较:从左到右逐个比较两个字符串的字符。如果在某个位置上字符不同,比较这两个字符的字母表顺序,字母序大的字符串字典序也大。如果一直比较到其中一个字符串结束,则较短的字符串字典序更小。
每个测试文件均包含多组测试数据。
第一行输入一个整数T(1≤T≤105)表示数据组数。每组测试数据描述如下:第一行输入两个整数n,k(1≤n≤105,0≤k<n);
第二行输入一个长度为n的字符串:(仅含小写字母)保证所有测试中n的总和不超过4×106。
对于每组测试数据,输出一行,一个字符串,表示在所有可得到的新字符串中,字典序最小的字符串。
输入
3
5 2
cbada
4 0
baca
6 3
zzxyyx
输出
ada
baca
xyy
样例一:可行截断子串为cba、bad、ada,字典序最小的是ada
样例二:k=0,只能取原串baca,答案为baca。
样例三:可行截断子串为zzx、zxy、xyy、yyx,字典序最小的是xyy。