加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
1-8计算最小值.py 1.73 KB
一键复制 编辑 原始数据 按行查看 历史
SHTLLS 提交于 2020-11-26 14:08 . '格式'
# 任务详情
# 给定一个以字符串表示的非负整数num,移除num中的 k 个数字,使得剩下的数字是结果最小。
# 任务要求
# 1. 请将代码区的函数补充完整
# 2. 函数接收num:str和k:int两个参数,程序返回结果为num去掉k个数字后的最小结果,str类型
# 3. 如果num为空字符串,返回'0'
# 测试用例
# 示例 1
# 输入:num = '1541319',k = 3
# 输出:'1119'
# 解释:移除掉三个数字 5, 4, 3,形成一个新的最小的数字 '1119'
# 示例 2
# 输入:num = '500100',k = 1
# 输出:'100'
# 解释:移掉首位的 5 剩下的数字为'100',注意输出不能有任何前导零
#
# # 1.运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。
# 2.您编写代码的区域可以不限定在类或者函数体内,保证输入与输出符合任务要求即可。
# 3.点击“运行代码”按钮,可以查看程序设计是否正确,运行次数越多,任务得分越低。
# 4.点击“提交代码”按钮,系统将保存代码,并记录任务数据。
# 5.点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。
# -*- coding: utf-8 -*-
class Solution:
def minNum(self, num: str, k: int) -> str:
list1 = []
for i in num:
n = int(i)
while k > 0 and list1 and list1[-1] > n:
list1.pop()
k -= 1
if list1 != [] or n != 0:
list1.append(n)
while k > 0 and list1:
list1.pop()
k -= 1
return "".join([str(n) for n in list1]) if list1 else "0"
num1 = '1541319'
k1 = 3
num2 = '500100'
k2 = 1
print(Solution.minNum(Solution, num1, k1))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化