栈--找最小数

题目描述

给一个正整数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 分钟前
C 语言实战:动态规划求解最长公共子串(连续),附完整实现与优化
数据结构·c++·算法·unity·游戏引擎·代理模式
海棠AI实验室2 分钟前
第十二章 类型标注与可读性:让协作与复用更容易
python
rgeshfgreh4 分钟前
顺序表实战:构建到销毁全解析
算法
十八岁讨厌编程6 分钟前
【算法训练营Day32】图论专题
算法·深度优先·图论
-凌凌漆-8 分钟前
【JS】JavaScript Promise
开发语言·javascript·ecmascript
羊村积极分子懒羊羊9 分钟前
python课程三月二十九号粗略总结
开发语言·python
深圳蔓延科技9 分钟前
Python算法学习分享
python
aloha_78910 分钟前
langchain4j如何使用mcp
java·人工智能·python·langchain
yunhuibin11 分钟前
CNN基础学习
人工智能·python·深度学习·神经网络
時肆48511 分钟前
Linux命令创意组合大赛:管道里的魔法
开发语言·性能优化