class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param num string字符串 
     * @param k int整型 
     * @return string字符串
     */
    //贪心算法:维持一个从底到顶不降序的栈(用队列更方便)
    string removeKnums(string num, int k) {
        // write code here
        int n=num.size();
        stack<char> s;
        for(int i=0;i<n;i++){
            char temp=num[i];
            while(!s.empty()&&k>0&&temp<s.top()){
                s.pop();
                k--;
            }
            s.push(temp);         
        }
        for(int i=0;i<k;i++){
            s.pop();
        }
        string res;
        while(!s.empty()){
            res+=s.top();
            s.pop();
        }
        reverse(res.begin(), res.end());
        bool flag=true;
        string ans;
        for(int i=0;i<res.size();i++){
            if(flag==true&&res[i]=='0'){
                continue;
            }
            ans+=res[i];
            flag=false;
        }
        return ans.size()?ans:"0";
    }
};