栈--找最小数

题目描述

给一个正整数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))
相关推荐
毋语天13 小时前
Python 常用内置模块详解:日志、随机数、时间、OS 与 JSON
开发语言·python
Asa1213813 小时前
Nature Microbiology|跨微生物界菌株水平传播推断的新算法TRACS
算法
右耳朵猫AI13 小时前
Python技术周刊 2026年第14周
开发语言·python·okhttp
2501_9012005313 小时前
MongoDB事务会产生多少性能损耗
jvm·数据库·python
zh15702313 小时前
CSS如何通过Sass循环生成辅助类_批量创建颜色或间距样式
jvm·数据库·python
加号313 小时前
【Python】 实现 HTTP 网络请求功能入门指南
网络·python·http
叼烟扛炮13 小时前
C++ 知识点22 函数模板
开发语言·c++·算法·函数模版
神明93113 小时前
golang如何实现滚动更新方案_golang滚动更新方案实现实战
jvm·数据库·python
CLX050513 小时前
mysql复杂查询语句如何调优_通过改写子查询为JOIN连接
jvm·数据库·python
Tisfy13 小时前
LeetCode 2553.分割数组中数字的数位:模拟(maybe+翻转)——java也O(1)
java·数学·算法·leetcode·题解·模拟·取模