给定一个十进制正整数 n(0 < n < 1000000000),每个数位上数字均不为 0。n 的位数为 m。
现在从 m 位中删除 k 位 (0<k < m),求生成的新整数最小为多少?
例如: n = 9128456, k = 2, 则生成的新整数最小为 12456。
输入格式
第一行 t, 表示有 t 组数据;
接下来 t 行,每一行表示一组测试数据,每组测试数据包含两个数字 n, k。
输出格式
t 行,每行一个数字,表示从 n 中删除 k 位后得到的最小整数。
输出时每行末尾的多余空格,不影响答案正确性
样例输入
2
9128456 2
1444 3
样例输出
12456
1
思路:删除字符串中最大的K位数字并且输出就好了。这里要用到erase函数,erase函数删除之后后面的字符自动往前挪。
erase函数的三种用法:
(1)erase(pos,n); //删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符
(2)erase(position);//删除position处的一个字符(position是个string类型的迭代器)
(3)erase(first,last);//删除从first到last之间的字符(first和last都是迭代器)
#include