力扣打卡第三天
题目
分析题目
- 理解快乐数概念
- 结束条件:
- 快乐数的结果为 1,返回True
- 无限循环找不到 1,变相说法就是数值在到达一定数量之后会开始重复进入一个闭环,也就是只需要发现出现之前有的数值就重复了,也就可以返回False
解题思路
- 拆分数值,制作快乐数
- 使用集合或数组,记录数值并寻找重复值
实例代码
class Solution:def isHappy(self, n: int) -> bool:# 字典创建hashMap = {}while True:# 判断是否重复if n in hashMap:return False# 将不重复的存入字典hashMap[n] = 1# 结束条件if n == 1:break# 拆分数值nums = self.dismantl(n)n = 0# 制作快乐数for i in range(len(nums)):n += nums[i] * nums[i]return True# 拆分数值函数def dismantl(self,data) -> list:result = []while data != 0:num = data % 10data = data // 10result.append(num)return result[::-1]