栈--找最小数

题目描述

给一个正整数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))
相关推荐
qq_416018721 分钟前
数据分析与科学计算
jvm·数据库·python
qq_148115371 分钟前
分布式系统容错设计
开发语言·c++·算法
leo__5204 分钟前
MATLAB高斯背景建模与目标提取(人体检测)
开发语言·人工智能·matlab
m0_560396474 分钟前
C++中的享元模式
开发语言·c++·算法
深藏功yu名6 分钟前
Day24(进阶篇):向量数据库 Chroma_FAISS 深度攻坚 —— 索引优化、性能调优与生产级落地
数据库·人工智能·python·ai·agent·faiss·chroma
左左右右左右摇晃6 分钟前
数据结构——数组
数据结构·笔记·算法
nainaire10 分钟前
速通LeetCode hot100——(1~9 哈希,双指针,滑动窗口)
c++·笔记·算法·leetcode
2501_9249526910 分钟前
分布式缓存一致性
开发语言·c++·算法
njidf28 分钟前
趣味项目与综合实战
jvm·数据库·python
李昊哲小课32 分钟前
PyMySQL完整教程
服务器·数据库·python·pymysql