leetcode202:快樂數
阿新 • • 發佈:2018-11-11
思想:
定義字典record記錄正整數每個位置上的數字的平方和,每次計算出來的平方和都儲存。若平方和出現重複則不是快樂數,反之則是。變數sq_num記錄每次的平方和。將n先求餘10得到個位上的數並平方,然後整除10得到去除個位上數的其他數,n其次進行迴圈直到結束計算出平方和,然後判斷平方和有沒有出現過,若沒有則繼續算,反之則返回false。
class Solution: def isHappy(self, n): """ :type n: int :rtype: bool """ record = {} sq_sum = 0 while n != 1: sq_sum = 0 sub_num = n while sub_num > 0: sq_sum += (sub_num % 10) * (sub_num % 10) sub_num //= 10 if sq_sum in record: return False else: record[sq_sum] = 1 n = sq_sum return True
都是大佬們的思想,小菜鳥還是不行的