下一个最大数字相同的数字

时间:2016-10-10 15:52:07

标签: python integer

我没有看到我的代码有任何问题,但是当输入无法产生下一个更大的数字时,我似乎无法返回-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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您可以在函数开头简单地使用if语句来测试该数字是否已经按反向排序顺序。如果它立即排序return -1

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