LeetCode - Happy Number(Python)


Problem
質問の概要:指定された数値がHappy Numberであるかどうかを確認します.
(HappyNumber:1桁あたりの二乗和は1)
Site
Solution
class Solution:
    def isHappy(self, n: int) -> bool:
        tmp = set()
        
        while n not in tmp :
            tmp.add(n)
            n = sum([int(x) ** 2 for x in str(n)])
            
            if n == 1:
                return True
            
        return False
整理する
平方和を保存するとともに、nが格納された値と重なるため無限に繰り返されるためhappy番号にはならないので、保存する空間をsetにして平方和を保存し、nが1の場合trueまたはfalseとする.