栈--找最小数

题目描述

给一个正整数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))
相关推荐
@sinner12 分钟前
《扫雷:病毒蔓延》- 颠覆传统的动态扫雷游戏
python·游戏·pygame
愈努力俞幸运12 分钟前
python 列表浅拷贝 深拷贝
python
坚持编程的菜鸟17 分钟前
LeetCode每日一题——在区间范围内统计奇数数目
c语言·算法·leetcode
qiuiuiu41322 分钟前
正点原子RK3568学习日志6-驱动模块传参
linux·c语言·开发语言·单片机·学习
云闲不收23 分钟前
golang的一些技巧
开发语言·后端·golang
测试老哥24 分钟前
测试用例之正交试验法、功能图法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
凸头25 分钟前
责任链模式
java·开发语言·责任链模式
进击的圆儿34 分钟前
分治算法_快速排序专题总结-----分治
算法·排序算法·分治·快排·大根堆·小根堆
岁岁岁平安43 分钟前
python基本数据类型、字典、 集合、条件与循环控制、函数(3)
python·学习·集合·函数·字典·python3
前进之路91 小时前
Leetcode每日一练--35
算法·leetcode