问题 D: 删数问题
题目描述
输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。输出新的正整数。(N不超过240位)输入数据均不需判错。
输入
ns
输出
最后剩下的最小数。
样例输入
1754384
样例输出
13
解答(贪心算法):
n = list(input())# 将每个数字存放于列表中s = int(input())print(n)li = []i = 0while i < s:a = 0# 寻找极大值while a < len(n) - 1 and n[a] <= n[a + 1]:# while结束条件是仅存1个数或者前数大于后数a += 1n.pop(a)# 删除列表中对应的数i += 1print(int(''.join(n)))# 将列表中的各个元素拼接起来并且转化为int类型
答案不唯一,必定有更加优化的解法欢迎分享
Python(贪心算法)问题 D: 删数问题_输入一个高精度的正整数N 去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。