202. 快乐数

https://leetcode-cn.com/problems/happy-number/

解法一:

观察可知,一旦出现重复数字,则进入循环。将所有第一次出现的数存入一个set,一直计算直到出现set中存在的数为止。过程中出现1则返回true

class Solution:
    def isHappy(self, n: int) -> bool:
        s = set()   
        while n not in s:
            #若出现1就返回true
            if n == 1:
                return True
            s.add(n)
            #计算快乐数
            sum = 0
            while n > 0:
                digit = n % 10
                n //= 10
                sum += digit ** 2
            n = sum    #更新    
        return False

最后更新于