栈--找最小数

题目描述

给一个正整数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))
相关推荐
znhy_2313 小时前
day41打卡
python
晨光321113 小时前
Day34 模块与包的导入
java·前端·python
知行合一。。。13 小时前
Python--01--核心基础
android·java·python
宵时待雨13 小时前
C语言笔记归纳22:预处理详解
c语言·开发语言·笔记
深蓝海拓13 小时前
QT,sys.argv支持的核心内置参数
python·pyqt
superman超哥13 小时前
仓颉语言中循环语句(for/while)的深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
chenyuhao202413 小时前
Linux系统编程:线程概念与控制
linux·服务器·开发语言·c++·后端
冷雨夜中漫步13 小时前
Java类加载机制——双亲委派与自定义类加载器
java·开发语言·python
weibkreuz13 小时前
模块与组件、模块化与组件化的理解@3
开发语言·前端·javascript
xlq2232213 小时前
29.哈希(下)
算法·哈希算法·散列表