class Solution {
public:
string removeKdigits(string num, int k) {
if(k==num.size())return "0";
string res;
for(char c:num)//思路是把非完全升序的pop掉,留下递增序列如果pop掉不满k,再从尾部pop,因为是升序
//所以是尾部pop;
{
while(num.size()&&k&&res.back()>c)
{
res.pop_back();
k--;
}
res+=c;
}
while(k--)res.pop_back();
int i=0;
while(i<res.size()&&res[i]=='0')i++;
if(i==res.size())return "0";
return res.substr(i);
}
};
leetcode 402. 移掉K位数字
最新推荐文章于 2022-07-12 10:31:52 发布