题目描述
键盘输入一个高精度的正整数NNN(不超过250250250位) ,去掉其中任意kkk个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的NNN和kkk,寻找一种方案使得剩下的数字组成的新数最小。
输入格式
nnn (高精度的正整数)
kkk(需要删除的数字个数)
输出格式
最后剩下的最小数。
输入输出样例
输入 #1
175438
4
输出 #1
13
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
int main() {
string str;
int k;
cin >> str >> k;
vector<char>v;
for(int i= 0; i < str.size(); i++)
v.push_back(str[i]);
int len = v.size();
while(k--) {
for(int i= 0; i < v.size(); i++) {
if(v[i] > v[i + 1]) {
v.erase(v.begin() + i);
break;
}
}
len--;
}
int i = 0;
while(!v.empty() && v[0] == '0')
v.erase(v.begin()), len--;
if(len == 0)
cout << 0 << endl;
for(int i = 0; i < len; i++)
cout << v[i];
return 0;
}