class Solution(object): def removeKdigits(self, num, k): """ :type num: str :type k: int :rtype: str """ if k>=len(num): return '0' i=0 j=1 while k and j<len(num): while num[0]=='0': num=num[1:] if num[j]>num[i]: #if j==len(num)-1: #num=num[:j] while j<len(num)-1 and num[j+1]>=num[j]: j+=1 num=num[:j]+num[j+1:] k-=1 elif num[j]<num[i]: num = num[:i]+num[i + 1:] k-=1 else: while j<len(num) and num[i]==num[j] : i+=1 j+=1 if k and j==len(num): while k: num=num[:-1] k-=1 return num elif num[j] > num[i]: while j < len(num) - 1 and num[j + 1] >= num[j]: j += 1 num = num[:j] + num[j + 1:] k -= 1 elif num[j] < num[i]: num = num[:i]+num[i + 1:] k -= 1 i,j=0,1 while num[0]=='0' and num!='0': num=num[1:] return num
执行用时 :44 ms, 在所有 python 提交中击败了65.29%的用户
内存消耗 :12.1 MB, 在所有 python 提交中击败了12.20%的用户
这个是自己做的。。
但是没有用到栈,,所以做法应该需要改进。
——2019.11.5