移除k位数


image.png

各位数字最好从高位到低位保持上升。虽然能保证有序,但是遵照题目要求,只能剔除前面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)))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容