代码拉取完成,页面将自动刷新
同步操作将从 SHTLLS/Python练习 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# 任务详情
# 给定一个以字符串表示的非负整数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))
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。