leetcode 202. 快乐数 python实现

时间:2022-12-09 02:16:14

leetcode 202. 快乐数 python实现

思想:

  对输入数据 把每个位数平方求和

  得到结果如果是1 就返回真 否则 对这个结果递归

啥时候事后返回假:

  返回假 说明进入无限循环了。

  啥时候会无限循环?

    某一次求平方和的结果,之前得到过这个结果,那就会无限循环了。

所以,我把每次得到的结果 都存起来,如果后面发现某一次得到结果 在之前得到过,那就肯定无限循环了 返回假

 class Solution:
def isHappy(self, n):
"""
:type n: int
:rtype: bool
"""
temp = []
while True:
n = self.get_add(n)
if n == 1:
return True
elif n in temp:
return False
else:
temp.append(n) def get_add(self, n):
ret = 0
while n != 0:
g = n % 10
ret += g ** 2
n = int(n / 10)
return ret if __name__ == '__main__':
s = Solution()
print(s.isHappy(19))