LeetCode202.快乐数(Python)

题目

d96553b1f72d46cca087609057624dc6.jpg

 

解题思路

运用哈希表

将各个位数进行平方

将得到的数进行判断

如果为1输出True

如果不为1

判断是否重复了

如果重复输出False

如果没有重复

进行各个位数平方

反复以上操作

class Solution:
    def isHappy(self, n: int) -> bool:
      #将n的各个位数进行平方
        def pownum(num):
            numsum = 0
            while num != 0:
                i = num % 10
                num //= 10
                numsum = numsum + i ** 2
            return numsum
       
        numsum = pownum(n)
        numset = set()
        #判断numsum是否为快乐数
        while numsum != 1:
            if numsum in numset:
                return False
            else:
                numset.add(numsum)
            numsum = pownum(numsum)
        return True

总结

这题主要考察哈希表

只要我们根据题目快乐数定义来写代码就行

我在写的时候将numsum写成了n

导致我第一次运行失败

下次应该好好检查代码

b200342fbf984be8b0d92fa6c91ee912.jpg

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值