class Solution {
public String removeKdigits(String num, int k) {
if(k >= num.length())
return "0";
Stack<Character> stack = new Stack<>();
for(char d: num.toCharArray()){
while(!stack.empty() && d < stack.peek() && k > 0){
stack.pop();
k--;
}
stack.push(d);
}
while(!stack.empty() && k > 0){
stack.pop();
k--;
}
StringBuilder res = new StringBuilder();
while(!stack.empty()){
res.insert(0, stack.pop());
}
for(int i = 0; i < res.length(); i++){
if(res.charAt(i) != '0'){
return res.toString().substring(i, res.length());
}
}
return "0";
}
}