力扣-202.快乐数

创建一个空集合,将做完计算后的数存放到集合中,用哈希表记录并判断之后的数是否出现在集合中,如果出现则为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

你可能感兴趣的:(leetcode,算法,职场和发展)