DAY 10 LeetCode学习笔记

【LeetCode402】移除k位数字

前言

栈的题目做多了,还是会碰到很多自己没意料的思路和想法,可能还是一开始思考不够,需要多加联系

题目

官方题目

思路

字丑就见谅了,自己学习看看哈哈哈
算法思路

源码

class Solution:
    def removeKdigits(self, num: str, k: int) -> str:
        stack=[]
        for c in num:
            #当k>0 ,堆栈不为空,当前数字大于左侧,弹出堆栈即删除这位
            while k and stack and stack[-1]>c:
                stack.pop()
                k -= 1
            # 否则将该数入栈
            stack.append(c)
        # 当上述循环未i删除干净时,去除数字的尾部
        ans=stack[:-k] if k else stack

        #  清楚前导0或者返回0
        return "".join(ans).lstrip('0') or '0'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值