怎么把一串数变成比它大的最小的数

给出一个列表F 2651392641
得到列表F 2651394126

你题目的解答代码如下:

f = '2651392641'
f = list(map(int,f))
def fun(li):
    d = len(li)-2
    while d>=0 and li[d] >= li[d+1]:
        d -= 1
    if d<0:
        return "无解"
    m = len(li)-1
    while li[m] <= li[d]:
        m -= 1
    li[m], li[d] = li[d], li[m]
    li[d+1:] = sorted(li[d+1:])
    return li

print(fun(f))

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img


class Solution:
    def nextPermutation(self, nums) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        flag = -1
        for i in range(len(nums)-2, -1, -1):
            if nums[i] < nums[i+1]:
                flag = i
                break
        if flag == -1:
            nums.sort()
        else:
            for i in range(len(nums)-1, flag, -1):
                if nums[i] > nums[flag]:
                    nums[i], nums[flag] = nums[flag], nums[i]
                    nums[flag+1:] = sorted(nums[flag+1:])
                    break


您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632