簡體   English   中英

下一個最大的數字相同的數字

[英]Next Biggest Number Same Digits

我沒有發現我的代碼有任何問題,但是當輸入不能產生下一個更大的數字時,我似乎無法返回 -1,即輸入531是降序的。

import itertools as it
def next_bigger(n):
    if sorted("531", reverse = True) == list("531"):
        return -1
    s = tuple(str(n))
    for x in it.dropwhile(lambda x: x <= s, it.permutations(sorted(s))):
        return int(''.join(x))
    return s

有人可以幫忙嗎?

您可以簡單地在函數的開頭使用if語句來測試數字是否已按反向排序。 如果已排序,則立即return -1

>>> sorted("531", reverse = True) == list("531")
True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM