栈--找最小数

题目描述

给一个正整数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))
相关推荐
欣然~1 分钟前
法律案例 PDF 批量转 TXT 工具代码
linux·前端·python
少林码僧5 分钟前
2.30 传统行业预测神器:为什么GBDT系列算法在企业中最受欢迎
开发语言·人工智能·算法·机器学习·ai·数据分析
豆沙沙包?5 分钟前
2026年--Lc343-1926. 迷宫中离入口最近的出口(图 - 广度优先搜索)--java版
java·算法·宽度优先
CoderCodingNo10 分钟前
【GESP】C++六级考试大纲知识点梳理, (7) 栈与队列
开发语言·c++
edisao15 分钟前
六、 读者高频疑问解答 & 架构价值延伸
大数据·开发语言·人工智能·科技·架构·php
超级大福宝17 分钟前
【力扣200. 岛屿数量】的一种错误解法(BFS)
数据结构·c++·算法·leetcode·广度优先
独自破碎E17 分钟前
【动态规划=递归+记忆化存储】跳台阶
算法·动态规划
范纹杉想快点毕业18 分钟前
C语言实现埃拉托斯特尼筛法
c语言·开发语言
季布,24 分钟前
本地Windows测试:钉钉群消息/文件传输到Python服务(完整教程)
windows·python·钉钉
catchadmin24 分钟前
Laravel12 + Vue3 的免费可商用 PHP 管理后台 CatchAdmin V5.1.0 发布 新增 AI AGENTS 配置
开发语言·php