栈--找最小数

题目描述

给一个正整数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))
相关推荐
hmbbcsm几秒前
练习python题目小记(五)
开发语言·python
蓝桉~MLGT1 分钟前
Python学习历程——文件
python·学习·策略模式
循环过三天2 分钟前
7.5、Python-匿名函数lambda
笔记·python·学习
kokunka5 分钟前
C#类修饰符功能与范围详解
java·开发语言·c#
ShineWinsu11 分钟前
对于数据结构:链式二叉树的超详细保姆级解析—中
数据结构·c++·算法·面试·二叉树·校招·递归
仟濹16 分钟前
【Java 基础】3 面向对象 - this
java·开发语言·python
Dxy123931021622 分钟前
Python一个类的特殊方法有哪些
开发语言·python
爱吃烤鸡翅的酸菜鱼30 分钟前
如何用【rust】做一个命令行版的电子辞典
开发语言·rust
野蛮人6号32 分钟前
力扣热题100道之207课程表
算法·leetcode·职场和发展
这周也會开心40 分钟前
Map的遍历方式
数据结构·算法