将一个n位的数字删除k位,求可能的最大值:
贪心算法就可以直接搞定。每次找到第一个高位高于低位的数并删除。执行k次.如果没有这样的数,删除最后一个.
def delete_k(num,k):
num = str(num)
def delete_1(num):
length = len(num)
flag = False#用来标志是否删除
for i in range(length-1):
if (num[i] < num[i+1]):
num = num[:i]+num[i+1:]
flag = True
break
if not flag:num = num[:-1]
return num
while k > 0 :
num = delete_1(num)
k -= 1
print(num)