Menu
CoddyTech

Remove K Digits

给你一个由数字组成的字符串形式的非负数 num,以及一个整数 k。恰好删除 k 位数字,并保持其余数字的原有顺序,使剩下的数字尽可能小。

以字符串形式返回结果,不要包含前导零。如果没有剩余数字,或剩下的全是零,则返回 "0"。

函数

removeKdigits(num: string, k: integer) → string
numstring
以数字字符串形式书写的数字
kinteger
要删除多少位数字
返回值string
你可以保留的最小数字,以不带前导零的字符串形式表示

约束条件

  • 1 ≤ num.length ≤ 4 × 104
  • 0 ≤ k ≤ num.length
  • num 只包含数字 0 到 9。
  • num没有前导零,除非它本身就是数字 "0"。

示例

输入
num = "4325043"k = 3
输出
"2043"
解释
删掉 4 和前面的第一个 3,就能让 2 移到最前面。0 不能放在最前面:它前面有四位数字,而你只能删除三位。最后一次删除会删掉 5,因为 5 在较小的 0 前面。
challenge icon

进阶

你会如何修改答案,删除 k 位数字,并留下最大的数?

重置代码
def removeKdigits(num, k):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

num = "4325043"
k = 3

预期输出

"2043"