zoukankan      html  css  js  c++  java
  • 402. Remove K Digits

    Given a non-negative integer num represented as a string, remove k digits from the number so that the new number is the smallest possible.

    Note:

    • The length of num is less than 10002 and will be ≥ k.
    • The given num does not contain any leading zero.

    Example 1:

    Input: num = "1432219", k = 3
    Output: "1219"
    Explanation: Remove the three digits 4, 3, and 2 to form the new number 1219 which is the smallest.
    

    Example 2:

    Input: num = "10200", k = 1
    Output: "200"
    Explanation: Remove the leading 1 and the number is 200. Note that the output must not contain leading zeroes.
    

    Example 3:

    Input: num = "10", k = 2
    Output: "0"
    Explanation: Remove all the digits from the number and it is left with nothing which is 0.
    class Solution(object):
        def removeKdigits(self, num, k):
            """
            :type num: str
            :type k: int
            :rtype: str
            """
            if k == len(num):
                return "0"
            s = []
            for c in num:
                if s == []:
                    s.append(c)
                else:
                    while s and c < s[-1] and k > 0:
                        s.pop()
                        k -= 1
                    else:
                        s.append(c)
            
            while k > 0:
                s.pop()
                k -= 1
            total = 0
            for c in s:
                total = total*10 + int(c)
            
            return str(total)
            
                
            
            
            
            


  • 相关阅读:
    invokerequied
    C#如何用正则表达式截取https和带端口的域名
    flex datagrid combox
    java webservice
    Flexlib 控件 http://code.google.com/p/flexlib/
    Git使用
    转:Vim常用命令
    转:oracle连接查询
    Axis2 spring发布WebService
    oracle jdbc example 示例
  • 原文地址:https://www.cnblogs.com/boluo007/p/12591017.html
Copyright © 2011-2022 走看看