栈--找最小数

题目描述

给一个正整数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))
相关推荐
asdfg12589632 分钟前
Java 大型项目设计的“内功心法”---面向对象和接口编程
java·开发语言
叼烟扛炮2 分钟前
C++第八讲:string 类
开发语言·c++·算法·string
ch.ju3 分钟前
Java programming Chapter Three——Array
java·开发语言
Chase_______10 分钟前
LeetCode 1493 & 3634 题解:滑动窗口双指针,从“删一个元素的全1子数组“到“最少移除使数组平衡“
算法·leetcode
努力努力再努力wz16 分钟前
【Qt入门系列】第一个 Qt Widgets 程序:项目创建、UI 文件、Hello World、对象树与 qDebug 日志
java·c语言·开发语言·数据结构·c++·qt·ui
电子云与长程纠缠18 分钟前
UE5 GameFeature创建与使用
开发语言·学习·ue5·游戏引擎
悲伤小伞23 分钟前
LeetCode 热题 100_4-283. 移动零
算法·leetcode·职场和发展
_Evan_Yao26 分钟前
零基础学编程,第一门语言选Python还是C?
c语言·开发语言·python
星 海28 分钟前
网络芯片对IP地址最长前缀匹配算法的实现
网络·算法
凤凰院凶涛QAQ29 分钟前
《C++转Java快速入手系列》抽象类和接口篇
java·开发语言·c++