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;
}
};