python-3.x - happynumber code Time Limit Exceeded 问题
问题描述
问题是: 编写一个算法来确定一个数字 n 是否“快乐”。
快乐数字是由以下过程定义的数字:从任何正整数开始,将数字替换为其数字的平方和,然后重复该过程直到数字等于 1(它将保持不变),或者循环在一个不包括 1 的循环中无限循环。这个过程以 1 结束的那些数字是快乐数字。
如果 n 是一个快乐的数字,则返回 True,否则返回 False。
我的解决方案如下。
class Solution:
def isHappy(self, n: int) -> bool:
flag = True
while flag:
try:
result = self.passExam(n)
if result == 1:
flag = False
else:
self.passExam(result)
except:
return False
# print('passed')
return True
def passExam(self, n: int) -> int:
result = 0
list = str(n)
# Loop through indices in n
for i in range(len(list)):
# print(f'{i}th : {list[i]}')
# Store a square number
num = int(list[i])
num = num * num
result = result + num
# print(f'result is {result}')
return result
解决方案
class Solution:
def isHappy(self, n: int) -> bool:
sum = self.passExam(n)
seen = set()
flag = True
while flag:
if sum in seen:
return False
elif sum == 1:
return True
else:
seen.add(sum)
sum = self.passExam(sum)
def passExam(self, n: int) -> int:
result = 0
list = str(n)
# Loop through indices in n
for i in range(len(list)):
# print(f'{i}th : {list[i]}')
# Store a square number
num = int(list[i])
num = num * num
result = result + num
# print(f'result is {result}')
return result
推荐阅读
- python - 为什么 matplotlib 需要这么长时间才能绘制?
- android - Kotlin:如何生成依赖于两个文本框的 If 语句
- php - 使用 Apache 在 raspberry (Debian) 上运行的 PHP
- c++98 - 如何在头文件中定义嵌套映射以在 .cpp 中使用
- go - Go 频道——这里发生了什么
- c - C:为数组中的所有字符串添加文字,同时保留对原始字符串的访问权限
- javascript - 从映射对象中删除空数组
- xamarin - 如何修复xamarin中的空白列表视图页面
- encryption - 文件校验和中是否存在冲突?
- dart - 用颤振绘制虚线弧