牛客网-保留最大的数

题目描述
给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。

输入为两行内容,第一行是正整数number,1 ≤ length(number) ≤ 50000。第二行是希望去掉的数字数量cnt 1 ≤ cnt < length(number)。

输入:325 1
输出:35

nums = list(input())
cnt = int(input())
n, j, i= len(nums), cnt, 0
while j > 0 and i < n-1:
    if nums[i]>= nums[i+1]:
        i += 1
    else:
        nums.pop(i)
        j -= 1
        n -= 1
        i = i-1 if i > 0 else 0
if j > 0:
    nums = nums[:-j]
print(''.join(nums))
# 复杂度O(n),从左至右,删除小于下一位的数,最后不够删除结尾数 

参考链接 https://www.nowcoder.com/profile/6416438/codeBookDetail?submissionId=31625556

猜你喜欢

转载自blog.csdn.net/aaon22357/article/details/83795835