如果乙個正整數自身是回文數,而且它也是乙個回文數的平方,那麼我們稱這個數為超級回文數。
現在,給定兩個正整數 l 和 r (以字串形式表示),返回包含在範圍 [l, r] 中的超級回文數的數目。
示例:輸入:l = "4", r = "1000"
輸出:4
解釋:4,9,121,以及 484 是超級回文數。
注意 676 不是乙個超級回文數: 26 * 26 = 676,但是 26 不是回文數。
import mathdef check_num(arg):
#初次確定回文數
num_first = len(arg)
num_on = 0
for i in range(len(arg)):
#遍歷數字字元 實際這裡range可以除以2
if arg[i] == arg[-1-i]:
num_on += 2 #前後對稱的數字個數
else:
# print('{}不是回文數'.format(arg))
break
if num_first-num_on <= 1:
#剩餘數值為1個時,或0時,即為字元長度是奇數或偶數時,可以確定是回文數。
# print("{} is 回文數".format(arg))
return true
def num_list(x, y):
for i in range(x, y):
if check_num(str(i)):
if math.sqrt(i) == int(math.sqrt(i)):
#確定可開平方,為整數
if check_num(str(int(math.sqrt(i)))):#確定該數是回文數
print("{} is 超級平方數".format(i))
num_list(3,1000)
print('ok')
力扣9 回文數
判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。這是我自己寫的版本。但是和官方題解相比還是差了點。public boolean ispalindrome int x return y x public bool ispalindrome int x int r...
刷力扣演算法題 回文數
題目詳情 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋...
力扣題解回文數解析思想
關於回文數的一些思想解析路線 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸...