
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);
}
};
C++字符串处理算法
本文介绍了一种使用C++实现的字符串处理算法,该算法能够有效地移除指定数量的数字字符,以达到优化字符串的目的。通过遍历字符串并利用递增序列特性,算法能高效地完成任务。
373

被折叠的 条评论
为什么被折叠?



