问题标题: 酷町堂:2786 寻找最小数

0
0
已解决
武建豪
武建豪
中级天翼
中级天翼

2786   寻找最小数

经验值:1200 时间限制:1000毫秒

题目描述 Description

请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最小,整数n中可能出现数字0,最后结果的高位0不可以出现

比如当n=92081346718538,m=10时,则新的最小数是113

输入描述 Input Description

第一行输入一个正整数T,表示有T组测试数据
每组测试数据占一行,每行有两个数n,m(n可能是一个很大的整数,但其位数不超过100位,并且保证数据首位非0,m小于整数n的位数)

输出描述 Output Description

每组测试数据的输出占一行,输出剩余的数字按原次序组成的最小新数

样例输入 Sample Input

2 92081346718538 10 1008908 5

样例输出 Sample Output

113 0

武建豪在2021-07-25 10:55:30追加了内容

快快快

武建豪在2021-07-25 12:03:03追加了内容

ddd

武建豪在2021-07-25 12:41:36追加了内容

ddd


0
已采纳
王文博
王文博
缔造者之神
缔造者之神

这是一道贪心题目

while(m--)
        {
            for(int i=0;i<s.size();i++)
            {
                if(i==s.size()-1||s[i]>s[i+1])
                {
                    s.erase(i,1);
                    break;
                }
            }
        }

这是核心代码

后面删0的操作很简单的

0
我要回答