栈--找最小数

题目描述

给一个正整数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))
相关推荐
曦樂~21 小时前
【STL】内部使用哈希表的unordered_map/unordered_set
数据结构·算法·哈希算法
杜子不疼.21 小时前
【C++】map/set 与 unordered_map/set 的核心区别与选型
开发语言·c++
狂奔的sherry21 小时前
C++ 模板与泛型编程 理解
开发语言·c++
u***u68521 小时前
Java虚拟机内存模型详解
java·开发语言
小徐敲java21 小时前
python使用opcua的订阅和mqtt
开发语言·python
良木林21 小时前
Node.js基础:模块化与包
开发语言·前端·node.js
Lisonseekpan1 天前
雪花算法(Snowflake)技术详解与实战应用
java·分布式·后端·算法
带土11 天前
1. Qt-的安装和环境变量的配置
开发语言·qt
夫唯不争,故无尤也1 天前
梯度累计原理:数学可行性与PyTorch实现
人工智能·pytorch·python
软件算法开发1 天前
基于秃鹰搜索优化的LSTM深度学习网络模型(BES-LSTM)的一维时间序列预测算法matlab仿真
深度学习·算法·matlab·lstm·时间序列预测·秃鹰搜索优化·bes-lstm