移除k位数字
使用栈辅助
class Solution {
public:
string removeKdigits(string num, int k) {
//实现栈
vector<int> S;
int len=num.size();
string result;
int jilu=k;
//int top;
for(int i=0;i<len;++i)
{
int number=num[i]-'0';
while(S.size()!=0&&number<S.back()&&jilu>0)
{
S.pop_back();
--jilu;
}
if(!S.empty()||number!=0)
S.push_back(number);
}
//得到了最终结果,现在处理的是特殊情况
while(jilu!=0&&S.size()!=0)
{
S.pop_back();
--jilu;
}
//将数字转换成字符串
for(auto s:S)
{
result.append(1,'0'+s);
}
if(result.size()==0)
return result+'0';
return result;
}
};