最小不重复数----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)
此方法实现简单,但对于一些特定的数,比如:111111111,这就傻了,那要遍历多少个数啊!所以这样做很不现实。