题目描述
输入
输出
输出一个数表示最小值,输出时忽略数字的前导零。
样例输入1
179566
4
样例输出1
15
样例输入2
903071
3
样例输出2
1
做法1
#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); } 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; int n; cin >> s >> n; while (n--) s = remove(s); cout << strip(s) << endl; return 0; }