创建一个空集合,将做完计算后的数存放到集合中,用哈希表记录并判断之后的数是否出现在集合中,如果出现则为False,如果没有出现则一直判断,直到计算结果为1
class Solution:
def isHappy(self, n: int) -> bool:
#创建集合
rec = set()
while n:
#调用sum方法,将n传递给它,计算出各个位数的平方,更新n
n = self.sum(n)
if n == 1:
return True
if n in rec:
return False
else:
#更新集合
rec.add(n)
def sum(self,n:int)->int:
new_num = 0
while n:
x = n % 10
new_num += x ** 2
n = n // 10
return new_num