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, שנמצא לפני 0 קטן ממנו.
challenge icon

שאלת המשך

איך תשנה את הפתרון כדי להסיר k ספרות ולהשאיר במקום זאת את המספר הגדול ביותר?

איפוס הקוד
def removeKdigits(num, k):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנטים

num = "4325043"
k = 3

הפלט הצפוי

"2043"