/**
 * @param {string} num
 * @param {number} k
 * @return {string}
 */
var removeKdigits = function (num, k) {
    let stack = [];
    for (ch of num) {
        while (k > 0 && stack.length > 0 && stack.at(-1) > ch) {
            k--;
            stack.pop();
        }
        stack.push(ch);
    }

    let x = 0;
    while (true) {
        if (stack[x] !== '0') {
            break;
        }
        x++;
    }
    stack = stack.slice(x, stack.length - k);
    let res = stack.join('');
    return res ? res : '0';
};