示例:
num_1 = 1010num_2 = 1234num_3 = 1034这里,num_1是唯一有效的数字,因为它有1和0。
num_2无效,因为它没有任何1s或0。
num_3也应该是无效的,因为它的数字不是0和1s,是2和4。
注意:您不能使用任何for循环或while循环,也不能使用任何python函数、方法或字符串方法或内置的python方法,您只能使用if、elif和else。
我所能使用的只有条件语句if,if- All和if-elif-All简单的变量赋值,二进制运算符喜欢或不喜欢。我不应该使用任何Python方法或函数。任何Python循环结构。任何列表、数组、集合或字典对象。
我们怎样才能解决这个问题,找出只有1和0的数字呢?
给定的整数可以在0到10000之间。
发布于 2022-09-23 00:38:35
鉴于一系列重大限制:
if num == 0: return True
elif num == 1: return True
elif num == 10: return True
elif num == 11: return True
elif num == 100: return True
elif num == 101: return True
elif num == 110: return True
elif num == 111: return True
elif num == 1000: return True
elif num == 1001: return True
elif num == 1010: return True
elif num == 1011: return True
elif num == 1100: return True
elif num == 1101: return True
elif num == 1110: return True
elif num == 1111: return True
elif num == 10000: return True
else: return False发布于 2022-09-23 01:51:52
因为数字有一个范围,所以可以内联while循环:
def only_one_or_zero(num):
if num == 0: return True
last = num % 10
if last != 0 and last != 1: return False
num //= 10
if num == 0: return True
last = num % 10
if last != 0 and last != 1: return False
num //= 10
if num == 0: return True
last = num % 10
if last != 0 and last != 1: return False
num //= 10
if num == 0: return True
last = num % 10
if last != 0 and last != 1: return False
num //= 10
if num == 0: return True
last = num % 10
return last == 0 or last == 1测试:
>>> all(only_one_or_zero(i) == ({'0', '1'} >= set(str(i))) for i in range(100001))
Truehttps://stackoverflow.com/questions/73821876
复制相似问题