题目描述
键盘输入一个高精度的正整数 NN(不超过 250250 位),去掉其中任意 kk 个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的 NN 和 kk,寻找一种方案使得剩下的数字组成的新数最小。
输入格式
nn(高精度的正整数 )。
kk(需要删除的数字个数 )。
输出格式
最后剩下的最小数。
输入输出样例
输入 #1
175438
4
输出 #1
13
如果你的2和6测试数据没过的话试试这两个数据
输入#2
200056 2
输出#2
5
输入#3
10000 1
输出#3
0
没错数据去除了前缀0;
AC:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main()
{
string x;
int k;
cin >> x >>k;
while(k--)
{
int flag=0;
for(int i=0; i<x.size()-1; i++)
{
if(x[i]>x[i+1])
{
flag=1;
x.erase(x.begin()+i);
break;
}
}
if(!flag)
{
x.erase(x.end()-1);
}
}
int i=0;
while(x[i]=='0'&&i<x.size()-1)
{
x.erase(x.begin()+i);
}
cout << x << endl;
return 0;
}
只能默默说一句太坑了。。。。。