zoukankan      html  css  js  c++  java
  • 402. 移掉K位数字

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。

    注意:

    num 的长度小于 10002 且 ≥ k。
    num 不会包含任何前导零。
    示例 1 :

    输入: num = "1432219", k = 3
    输出: "1219"
    解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。
    示例 2 :

    输入: num = "10200", k = 1
    输出: "200"
    解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。
    示例 3 :

    输入: num = "10", k = 2
    输出: "0"
    解释: 从原数字移除所有的数字,剩余为空就是0。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/remove-k-digits
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution:
        def removeKdigits(self, num: str, k: int) -> str:
            res=[]
            for i in num:
                while res and i<res[-1] and k>0:
                    res.pop()
                    k-=1
                res.append(i)
            while k:
                res.pop()
                k-=1
            #remove the leading '0'
            while res and res[0]=='0':
                res.pop(0)
                k-=1
            return ''.join(res) if res else '0'
  • 相关阅读:
    利用ssh传输文件
    linux 终端常用快捷键
    ubuntu 下关闭apache服务自动启动
    linux ps命令介绍
    virtualenv 使用
    startuml 2.6注册
    三代组装小基因组研究综述
    畅想未来的测序
    测序简史
    纳米孔测序技术介绍
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13975835.html
Copyright © 2011-2022 走看看