mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
更新 0202.快乐数.md python代码简化
利用闭包的特性,修改了原本python代码中不符合PEP3的写法,以及赘余的代码。思路保持一致
This commit is contained in:
@ -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:
|
||||||
|
Reference in New Issue
Block a user