哈希-快乐数

 

解决这个问题的关键在于,判断结束遍历的条件,即当n!=1 或者 在循环过程中,没有出现过重复的数。

 

class Solution:

    def isHappy(self, n: int) -> bool:
        def get_score(n):
            sum_ = 0
            while n > 0:
                end_ = n % 10
                sum_ += end_ ** 2  
                n = n // 10
            return sum_

        data_set = set()

        while n != 1 and n not in data_set:
            data_set.add(n)
            n = get_score(n)

        return n == 1

 

使用get_score 来计算循环,使用: n不等于1 和 n 不在循环集合中作为终止的条件。

 

posted @ 2024-08-29 09:39  TW-NLP  阅读(7)  评论(0编辑  收藏  举报