解决这个问题的关键在于,判断结束遍历的条件,即当n!=1 或者 在循环过程中,没有出现过重复的数。
class Solution:def isHappy(self, n: int) -> bool:def get_score(n):sum_ = 0while n > 0:end_ = n % 10sum_ += end_ ** 2 n = n // 10return 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 不在循环集合中作为终止的条件。