我试图解决Leetcode问题Happy Number,我似乎陷入了一个奇怪的超过时间限制的错误
我的代码:
class Solution:
def isHappy(self, n: int) -> bool:
def simu(n):
sums = 0
while n>0:
s = n%10
n = n//10
sums=sums+(s**2)
if sums != 1:
simu(sums)
return True
while True:
try:
return simu(n)
except RecursionError:
return False
你知道怎么克服吗
尝试直到你得到一个
RecursionError
是一个非常糟糕的主意。相反,我能想到的一个解决办法是,跟踪以前失败的号码,一旦你得到一个已经失败的号码,就停止进一步的尝试。因为,你肯定知道同样的事情还会发生这个想法是要证明一个解决方案,而不是暴力强迫。也许有更好的解决办法,例如,如果这些快乐的数字有一些特殊的数学性质等
相关问题 更多 >
编程相关推荐