栈--找最小数

题目描述

给一个正整数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))
相关推荐
Tisfy几秒前
LeetCode 3629.通过质数传送到达终点的最少跳跃次数:埃式筛+BFS
算法·leetcode·宽度优先·质数·埃式筛
江南十四行几秒前
Python性能优化完全指南——剖析、缓存与C扩展
python·缓存·性能优化
u0110225122 分钟前
SQL如何优雅地进行多表关联查询_掌握JOIN语法执行逻辑
jvm·数据库·python
2401_831419443 分钟前
mysql如何测试用户权限是否生效_使用不同用户身份验证操作
jvm·数据库·python
段ヤシ.3 分钟前
回顾Java知识点,面试题汇总Day1(持续更新)
java·开发语言
小娄~~4 分钟前
多线程函数
c语言·开发语言
2301_809204706 分钟前
Redis怎样强行终止陷入死循环的Lua脚本
jvm·数据库·python
Hello.Reader6 分钟前
算法基础(九)——循环不变式如何证明一个算法是正确的
java·开发语言·算法
寻道模式6 分钟前
【开发心得】给私有部署OpenClaw添加PDF阅读技能
开发语言·python·pdf
逐梦苍穹6 分钟前
Claude Code调用Codex失败复盘:从10个Agent、0次codex exec到Bash-only Worker + Hook强制委托
开发语言·chrome·bash