题目描述
给一个正整数NUM1,计算出新正整数NUM2,NUM2为NUM1中移除N位数字后的结果,需要使得NUM2的值最小。
输入描述
输入的第一行为一个字符串,字符串由0-9字符组成,记录正整数NUM1,NUM1长度小于32。
输入的第二行为需要移除的数字的个数,小于NUM1长度。
输出描述
输出一个数字字符串,记录最小值NUM2。
用例1
输入
2615371
4
输出
131
python
NUM1=input()
N = int(input())
remain = len(NUM1)-N
stack=[]
for num in NUM1:
while stack and stack[-1]>num and N>0:
stack.pop()
N-=1
stack.append(num)
# 如果我们仍然需要移除数字,并且栈的长度超过了不需要移除的数字的数量
# 则从栈的末尾移除多余的元素(因为它们是较大的数字)
while len(stack)>remain:
stack.pop()
while stack[0]=='0' and len(stack)!=1:
stack.pop(0)
print(''.join(stack))