我已经完成了一项编码游戏评估,但我无法通过关于幸运数字的一项挑战的所有测试。我需要协助。
定义:幸运数字是一个数字中包含6
s 或8
s 但不能同时包含两者的数字。例如16
, 38
,666
是幸运数字。234
,687
不是。
任务L
:打印和之间的幸运数字数H
。
约束:
L < H
记忆:512MB
时间:6 seconds
这是我所做的(我选择 Python 作为编程语言)
def is_lucky(nbr):
nbr = [*str(nbr)]
if '6' in nbr and '8' in nbr:
return False
if '6' in nbr or '8' in nbr:
return True
return False
n_lucky_number = 0
for number in range(L, H + 1):
n_lucky_number += is_lucky(number)
print(n_lucky_number)
L
由于超时,我在和H
很大(或两者之间的差距)的测试中失败了。
L, H = 1, 1000000000000000000
L, H = 92871036442, 3363728910382456
有人可以帮我优化我的代码吗?
PIPIONE
沧海一幻觉
天涯尽头无女友
相关分类