移除k位數


各位數字最好從高位到低位保持上升。但是雖然能保證有序,但是遵照題目要求,只能剔除前面k個不遵守該規定的數字。

class Solution:
    def removeKdigits(self, num: str, k: int) -> str:
        # stack[-1]<num[i]
        stack=[]
        for i in range(len(num)):
            while k>0 and len(stack)>0 and stack[-1]>num[i]:
                stack.pop()
                k-=1
            stack.append(num[i])
        stack=stack[:len(stack)-k]
        if len(stack)==0:
            return "0"
        return str(int("".join(stack)))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章