栈--找最小数

题目描述

给一个正整数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))
相关推荐
eso198311 分钟前
白话讲述监督学习、非监督学习、强化学习
算法·ai·聚类
chen_jared12 分钟前
反对称矩阵的性质和几何意义
人工智能·算法·机器学习
Object~17 分钟前
4.const和iota
开发语言·前端·javascript
海天一色y25 分钟前
python---力扣数学部分
算法·leetcode·职场和发展
一起努力啊~31 分钟前
算法刷题--哈希表
算法·面试·散列表
HarmonLTS36 分钟前
Python Socket网络通信详解
服务器·python·网络安全
willingli37 分钟前
c语言经典100题 61-70题
c语言·开发语言·算法
我是小疯子6642 分钟前
深入解析C++右值引用与移动语义
java·开发语言·算法
Ethan Wilson44 分钟前
VS2019 C++20 模块相关 C1001: 内部编译器错误
开发语言·c++·c++20
郝学胜-神的一滴1 小时前
Python数据封装与私有属性:保护你的数据安全
linux·服务器·开发语言·python·程序人生