题解
2025-04-20 17:53:14
发布于:广东
2阅读
0回复
0点赞
单调栈
单调上升/下降
#include <bits/stdc++.h>
using namespace std;
string ddz(string num,int k) {
stack<char> z;
for (char i : num) {
while(k>0&&!z.empty()&&z.top()>i){
k--;
z.pop();
}
z.push(i);
}
while(k>0&&!z.empty()) {
z.pop();
k--;
}
string s="";
while(!z.empty()){
s+=z.top();
z.pop();
}
int len=0;
reverse(s.begin(),s.end());
while(len<=s.size()-1&&s[len]=='0') {
len++;
}
s=s.substr(len);
return s.empty()?"0":s;
}
int main() {
string s;
int n;
cin >> s;
cin >> n;
cout << ddz(s, n);
return 0;
}
这里空空如也
有帮助,赞一个