Menu
CoddyTech

Remove K Digits

Bạn nhận được một số không âm được viết dưới dạng chuỗi chữ số, num, và một số nguyên k. Hãy xóa chính xác k chữ số và giữ lại các chữ số còn lại theo đúng thứ tự ban đầu, sao cho số còn lại nhỏ nhất có thể.

Trả về số đó dưới dạng chuỗi không có số 0 ở đầu. Nếu không còn chữ số nào hoặc chỉ còn các số 0, hãy trả về "0".

Hàm

removeKdigits(num: string, k: integer) → string
numstring
số đó, được viết dưới dạng một chuỗi chữ số
kinteger
cần xóa bao nhiêu chữ số
Trả vềstring
số nhỏ nhất bạn có thể để lại, dưới dạng chuỗi không có số 0 ở đầu

Ràng buộc

  • 1 ≤ num.length ≤ 4 × 104
  • 0 ≤ k ≤ num.length
  • num chỉ chứa các chữ số từ 0 đến 9.
  • num không có số 0 ở đầu, trừ khi chính nó là số 0, "0".

Ví dụ

Đầu vào
num = "4325043"k = 3
Đầu ra
"2043"
Giải thích
Bỏ số 4 và số 3 đầu tiên sẽ đưa số 2 lên trước. Số 0 không thể đứng đầu: có bốn chữ số đứng trước nó và bạn được xóa ba chữ số. Lần xóa cuối cùng lấy số 5, vì nó đứng trước một số 0 nhỏ hơn.
challenge icon

Câu hỏi mở rộng

Bạn sẽ thay đổi lời giải như thế nào để xóa k chữ số và giữ lại số lớn nhất?

Đặt lại code
def removeKdigits(num, k):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

num = "4325043"
k = 3

Đầu ra mong đợi

"2043"