给定一个以字符串表示的非负整数 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。
保证高位比低位小,就可以拿到最小的数字
class Solution:def removeKdigits(self, num, k):""":type num: str:type k: int:rtype: str"""if len(num)==k:return '0'i=0while i<len(num)-1 and k>0:if int(num[i])>int(num[i+1]):#前一位如果比后一位大,删掉前一位num=num[0:i]+num[i+1:]k=k-1if i>0:i=i-1else:i=i+1if k>0:num=num[:-k]while len(num)>1:if num[0]=='0':num=num[1:]else:breakreturn num