栈--找最小数

题目描述

给一个正整数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))
相关推荐
亮子AI几秒前
【JavaScript】修改数组的正确方法
开发语言·javascript·ecmascript
q***311410 分钟前
【JAVA进阶篇教学】第十二篇:Java中ReentrantReadWriteLock锁讲解
java·数据库·python
浮尘笔记17 分钟前
Go语言中如何实现线程安全的map
开发语言·后端·安全·golang
时尚IT男28 分钟前
Python 魔术方法详解:掌握面向对象编程的精髓
开发语言·python
找了一圈尾巴31 分钟前
Python 学习-深入理解 Python 进程、线程与协程(下)
开发语言·python·学习
小猪写代码37 分钟前
C语言系统函数-(新增)
c语言·开发语言
WXG10111 小时前
【matlab】matlab点云处理
开发语言·matlab
♛识尔如昼♛1 小时前
C 基础(3-2) - 数据和C
c语言·开发语言
可触的未来,发芽的智生1 小时前
微论-自成长系统引发的NLP新生
javascript·人工智能·python·程序人生·自然语言处理