题解 | #移掉 K 位数字#
移掉 K 位数字
http://www.nowcoder.com/practice/0fe685c8272d40f1b9785fedd2499c1c
class Solution {
public:
string removeKnums(string num, int k) {
int n = num.size();
if(n <= k) return string("0");
string v;
for(char c:num){
while(v.size() && v.back() > c && k){
v.pop_back();
--k;
}
v.push_back(c);
}
//删除前导0
int i = 0;
while(i < v.size() && v[i] == '0') ++i;
string ret = v.substr(i);
return ret;
}
};
拿个字符串当栈用就行,从前往后构造升序列表。