力扣 超級回文數

2022-08-26 09:39:09 字數 983 閱讀 5507

如果乙個正整數自身是回文數,而且它也是乙個回文數的平方,那麼我們稱這個數為超級回文數。

現在,給定兩個正整數 l 和 r (以字串形式表示),返回包含在範圍 [l, r] 中的超級回文數的數目。

示例:輸入:l = "4", r = "1000"

輸出:4

解釋:4,9,121,以及 484 是超級回文數。

注意 676 不是乙個超級回文數: 26 * 26 = 676,但是 26 不是回文數。

import math

def 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 輸...