给定n 位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n位正整数a(n<100) 和正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。 对于给定的正整数a,编程计算删去k个数字后得到的最小数。
Description
第1 行是1 个正整数a。第2 行是正整数k。
Input
计算出的最小数(输出无前导0)
Output
178543
Sample Input
13
Sample Output
Hint
mryang
题目数据小,直接暴力就可以。
一开始想的太简单了。直接按最大的数开始删,直到删除前k大的数。提交一发,WA。各种数据测试,正常。最后才发现按那样的思路 506 1 就过不了
它会先删除6,得到50,显然先删除5得到06,6要比50小;所以。。。。这就是坑。。。。。
那就不按从大到小,按从前到后,反正只要删除的不是当前最小就好。
假设有这么一组数据xyzzzz;开始比较x,y如果x比y大,那么yzzzz < xzzzz所以删掉x;如果x < y;就一定删掉y吗?不一定。假如y < z;删掉y就是xzzzz,那xzzzz和xyzzz比,前面x一样百位y < z所以不应该删掉y;而应该删掉z;
综上,只要前面一个数大于后面一个,就