image.png
各位数字最好从高位到低位保持上升。虽然能保证有序,但是遵照题目要求,只能剔除前面k个不遵守该规定的数字。
class Solution:
def removeKdigits(self, num: str, k: int) -> str:
# stack[-1]<num[i]
stack=[]
for i in range(len(num)):
while k>0 and len(stack)>0 and stack[-1]>num[i]:
stack.pop()
k-=1
stack.append(num[i])
stack=stack[:len(stack)-k]
if len(stack)==0:
return "0"
return str(int("".join(stack)))
网友评论