更新 0202.快乐数.md python代码简化

利用闭包的特性,修改了原本python代码中不符合PEP3的写法,以及赘余的代码。思路保持一致
This commit is contained in:
Eyjan_Huang
2021-08-16 18:24:43 +08:00
committed by GitHub
parent 46c1084f69
commit fbeb80f14a

View File

@ -111,25 +111,29 @@ Python
```python ```python
class Solution: class Solution:
def isHappy(self, n: int) -> bool: def isHappy(self, n: int) -> bool:
set_ = set() def calculate_happy(num):
while 1: sum_ = 0
sum_ = self.getSum(n)
if sum_ == 1: # 从个位开始依次取,平方求和
while num:
sum_ += (num % 10) ** 2
num = num // 10
return sum_
# 记录中间结果
record = set()
while True:
n = calculate_happy(n)
if n == 1:
return True return True
#如果这个sum曾经出现过说明已经陷入了无限循环了立刻return false
if sum_ in set_: # 如果中间结果重复出现,说明陷入死循环了,该数不是快乐数
if n in record:
return False return False
else: else:
set_.add(sum_) record.add(n)
n = sum_
#取数值各个位上的单数之和
def getSum(self, n):
sum_ = 0
while n > 0:
sum_ += (n%10) * (n%10)
n //= 10
return sum_
``` ```
Go Go