A21819. 删数
填空题
较难
知识点
题目描述
删数
题目描述
输入一个长度不超过 20 位的正整数,剩下的数字在不改变原来次序的情况,保证则完k 个数字后,剩下的这个数最小。(注意 如果剩下的是非一位数,0 不可以为首位)
例1:2809,要求删除 2位数字,则删除数字 8和数字 9,得到最小数 20(不可以是 09)。例 2:934509,要求删除3位数字,则删除最高位上的数字 9 以及数字 4、5,得到最小数字 309。
输入
共两行,
第一行,一个正整数 n,表示要被删除的数字
第二行,一个正整数 k,表示对n删除k 个数字。(k 小于数字n 的长度)
输出
共一行,一个整数,表示数字n 被删除k 位后得到的最小数
参考答案
# 输入待处理的正整数和需要删除的数字个数
n = input().strip()
k = int(input())
# 定义函数,用于删除一个数字并得到最小值
def remove_one_digit(n):
for i in range(len(n)-1):
if n[i] > n[i+1]:
return n[:i] + n[i+1:]
return n[:-1]
# 循环删除数字k次,并更新n的值
for i in range(k):
n = remove_one_digit(n)
# 输出结果
if len(n) == 0:
print(0)
else:
while n[0] == '0' and len(n) > 1:
n = n[1:]
print(n)
上一题
下一题