思路
#include <bits/stdc++.h>
using namespace std;
string remove(const string &s) {
for (int i = 0; i + 1 < s.size(); ++i) {
/* 出现逆序 删除更大的字符 */
if (s[i] > s[i + 1]) return s.substr(0, i) + s.substr(i + 1);
}
/* 不存在逆序 删除最后一位 */
return s.substr(0, s.size() - 1);
}
//由于有前导0的存在,那么我们就要扫描一遍字符串,去掉0,找出第一个字符非0即可
string strip(const string &s) {
int i = 0;
while (i < s.size() && s[i] == '0') ++i;
/* 只有前导0 */
if (i == s.size()) return "0";
return s.substr(i);
}
int main(void) {
string s;//存放n
int n;//存放要删除的个数s
cin >> s >> n;
while (n--) s = remove(s);//删除n个数字
cout << strip(s) << endl;
return 0;
}