欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

最小不重复数----Python实现

程序员文章站 2022-04-12 13:15:42
...

描述

给定一个任意数,找出比这个数大的最小不重复数(不重复数是指:这个数的相邻两位不同如:1231为不重复数,而1233为重复数)。

暴力**(直接+1)

def solution(num: int):
    """比num大的最小不重复数"""

    assert type(num) == int, '请输入int类型'

    min_no_repet_num = num + 1
    while isRepetNum(min_no_repet_num):
        min_no_repet_num += 1

    print(f"比{num}大的最小不重复数是{min_no_repet_num}")


def isRepetNum(num: int):
    """判断是否是重复数"""
    assert type(num) == int, '请输入int类型'

    tmp = str(num)
    for i in range(len(tmp) - 1):
        if len(tmp[i:i+2]) == 2 and tmp[i] == tmp[i+1]:
            # 有相邻两位数字,并且相邻两位数字相同,是重复数
            return True

    return False


if __name__ == '__main__':
    num = int(input("请输入一个数:"))
    solution(num)

最小不重复数----Python实现

此方法实现简单,但对于一些特定的数,比如:111111111,这就傻了,那要遍历多少个数啊!所以这样做很不现实。

未完待续