leetcode刷題--Happy Number
求一個數是否是快樂數。所謂快樂數指該數字所有數位(digits)的平方和,得到的新數再次求所有數位的平方和,如此重複進行,最終結果必為1。
思路:不用看平方和為1時返回True,但是如何才能停止程式返回False呢?有個辦法就是當出現第二次一個平方和的結果時我們可以知道結果是個迴圈,那就可以判定為false了。 一般解法如下:
class Solution:
# @param {integer} n
# @return {boolean}
def find(self,n,reset):
re=0
m=n
while(1):
if m/10>0:
i=m%10
re += i*i
m=m/10
else:
re += m*m
break
if re == 1:
return True
elif re in reset:
return False
else:
reset.add(re)
return self.find(re,reset)
def isHappy(self, n):
reset=set()
return self.find(n,reset)
當然也可以利用python字串數字轉化的方法討巧下:
class Solution:
# @param {integer} n
# @return {boolean}
def find(self,n,reset):
re=0
m=n
for i in str(n):re += int(i)*int(i)
if re == 1:return True
elif re in reset:return False
else:
reset.add(re)
return self.find(re,reset)
def isHappy(self, n):
reset=set()
return self.find(n,reset)
相關文章
- Leetcode 202 Happy Number Javascript 解決方案LeetCodeAPPJavaScript
- LeetCode 刷題—樹LeetCode
- LeetCode刷題 堆LeetCode
- LeetCode刷題整理LeetCode
- leetcode刷題(一)LeetCode
- LeetCode刷題記錄LeetCode
- leetcode刷題筆記LeetCode筆記
- 如何使用leetcode刷題LeetCode
- Leetcode刷題分類LeetCode
- LeetCode 刷題筆記LeetCode筆記
- Leetcode刷題準備LeetCode
- LeetCode刷題—陣列LeetCode陣列
- LeetCode刷題之第701題LeetCode
- LeetCode 刷題指南(一):為什麼要刷題LeetCode
- LeetCode - 解題筆記 - 8 - Palindrome NumberLeetCode筆記
- Leetcode刷題——求眾數LeetCode
- leetcode刷題記錄 661~LeetCode
- leetcode刷題筆記605LeetCode筆記
- Leetcode刷題系列彙總LeetCode
- Leetcode Number of islandsLeetCode
- leetcode刷題筆記(3)(python)LeetCode筆記Python
- LeetCode刷題(javascript,python3)LeetCodeJavaScriptPython
- 用 Rust 刷 leetcode 第七題RustLeetCode
- 用 Rust 刷 leetcode 第一題RustLeetCode
- 用 Rust 刷 leetcode 第三題RustLeetCode
- 用 Rust 刷 leetcode 第二題RustLeetCode
- 用Rust刷leetcode第九題RustLeetCode
- 用Rust刷leetcode第八題RustLeetCode
- 用 Rust 刷 leetcode 第六題RustLeetCode
- 用 Rust 刷 leetcode 第五題RustLeetCode
- 用 Rust 刷 leetcode 第四題RustLeetCode
- 用Rust刷leetcode第十題RustLeetCode
- leetcode排序專題演算法刷題LeetCode排序演算法
- [LeetCode] Third Maximum NumberLeetCode
- [LeetCode] Find the Duplicate NumberLeetCode
- Leetcode 9 Palindrome NumberLeetCode
- Leetcode 447 Number of BoomerangsLeetCodeOOM
- LeetCode演算法題-Number of Boomerangs(Java實現)LeetCode演算法OOMJava
- 【Leetcode刷題篇】leetcode56 合併區間LeetCode