重點來了:不能將整數轉為字串
下面這個方法比較笨哈哈,但是也比較好理解吧~
class
solution
:def
ispalindrome
(self, x:
int)
->
bool
:
num1 = x
num2 =
0
num3 = num1
if num1 <0:
#如果輸入為負數,肯定不是回文數
return
false
if num1 <
10and num1 >=0:
#輸入為個位數,肯定是回文數
return
true
while
(num2 != num3)
:#兩數不等,就一直迴圈
num2 += num1 %
10#加上輸入值的個位數
num1 =
int(num1 /10)
#輸入值捨棄最後一位數
if num2 == num3 :
#如果相等,返回true,程式結束
return
true
if num1 <1:
#當num1小於1,表明已經處理到最後一位數還是不等,退出迴圈
break
num2 = num2 *
10#將低位的數往前挪
return
false
#迴圈結束,返回false
演算法 回文數
題目描述判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 ...
演算法訓練 回文數
演算法訓練 回文數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 若乙個數 首位不為零 從左向右讀與從右向左讀都一樣,我們就將其稱之為回文數。例如 給定乙個10進製數56,將56加65 即把56從右向左讀 得到121是乙個回文數。又如 對於10進製數87 step1 87 78 165 ...
演算法訓練 回文數
若乙個數 首位不為零 從左向右讀與從右向左讀都一樣,我們就將其稱之為回文數。例如 給定乙個10進製數56,將56加65 即把56從右向左讀 得到121是乙個回文數。又如 對於10進製數87 step1 87 78 165 step2 165 561 726 step3 726 627 1353 st...