栈--找最小数

题目描述

给一个正整数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))
相关推荐
大头流矢2 小时前
C++的类与对象·三部曲:初阶
开发语言·c++
weixin_433179332 小时前
Python - word jumble游戏
开发语言·python
AAA.建材批发刘哥2 小时前
03--C++ 类和对象中篇
linux·c语言·开发语言·c++·经验分享
jghhh012 小时前
MATLAB实现弹道仿真源代码
开发语言·matlab
小O的算法实验室3 小时前
2024年IEEE TMC SCI1区TOP,面向无人机辅助 MEC 系统的轨迹规划与任务卸载的双蚁群算法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
拾荒的小海螺3 小时前
C#:PdfiumViewer 高效解析和操作 PDF 的技术指南
开发语言·pdf·c#
人道领域3 小时前
【零基础学java】(方法引用)
java·开发语言
Macbethad3 小时前
TwinCAT半导体设备IO Simulator技术方案
开发语言
Iridescent11213 小时前
Iridescent:Day48
python
BBB努力学习程序设计3 小时前
Python迭代器与生成器:优雅的惰性计算艺术
python