Skip to main content

402. Remove K Digits

分析

当前元素是否删除,是由上一个元素决定的
如 1432219
1 保留
4 4 > 1 保留
3 3 < 4 替代4后,能够更小


注意点
1. 对于0的处理
2. k == num.length

题解

function removeKdigits(num: string, k: number): string {
const stack = []
for (let i = 0; i < num.length; i++) {
const c = num[i]
while (stack.length > 0 && c < stack[stack.length - 1] && k) {
stack.pop()
k--
}
if (!stack.length && c === "0") {
continue
}
stack.push(c)
}
while (k) {
stack.pop()
k--
}

return stack.length ? stack.join("") : "0"
};