测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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)
上一题 下一题