栈--找最小数

题目描述

给一个正整数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))
相关推荐
笑不语1 分钟前
从共病网络到可解释 AI:同济医院 10 分 SCI 全流程复现(R 语言)
开发语言·人工智能·r语言
2301_814809862 分钟前
如何用 cookie 的 HttpOnly 与 Secure 属性防范 XSS 攻击
jvm·数据库·python
李松桃3 分钟前
实战:手刃豆瓣电影TOP250
python·爬虫实战·requests·re
yu85939583 分钟前
利用MATLAB进行木材图像去噪
开发语言·算法·matlab
m0_515098425 分钟前
如何用 Object.keys 与 getOwnPropertyNames 遍历键名
jvm·数据库·python
databook9 分钟前
如何让多个动画“齐步走”?
python·数学·动效
报错小能手11 分钟前
Swift EventBus讲解
开发语言·ios·swift
aq553560011 分钟前
GitSubmodule深度避坑指南
java·开发语言·php
qq_1898070314 分钟前
golang如何实现日志按级别过滤_golang日志按级别过滤实现教程
jvm·数据库·python
abc123456sdggfd14 分钟前
Golang map底层实现原理_Golang map哈希表原理教程【经典】
jvm·数据库·python