402. 移掉 K 位数字

class Solution {
public:
    string removeKdigits(string num, int k) {
        deque<char>st;
        for(char c:num){
            while(!st.empty() && c<st.back() && k>0){
                st.pop_back();
                k--;
            }
            st.push_back(c);
        }
        while(!st.empty() && k>0){
            st.pop_back();
            k--;
        }
        bool isLeadingZero=true;
        string res;
        for(auto x:st){
            if(isLeadingZero && x=='0'){
                continue;
            }
            isLeadingZero = false;
            res+=x;
        }
        return res==""?"0":res;
    }
};

你可能感兴趣的:(LeetCode,算法)