判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
示例 1:
輸入: 121
輸出: true
示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 爲 -121 。 從右向左讀, 爲 121- 。因此它不是一個迴文數。
示例 3:
輸入: 10
輸出: false
解釋: 從右向左讀, 爲 01 。因此它不是一個迴文數
思路:
這個題目比較簡單,首先輸入是一個整數,如果這個整數是負數的話,不可能是迴文數;如果是非負數的話,用以下兩個方法去判斷:
1、字符串的逆序
將這個整數轉爲字符串然後進行判斷,如果字符的前序和逆序都是相同的,就說明這個是一個迴文數。否則不是。
2、顛倒數字
顛倒數字和那個思想是一摸一樣的,不過這個就是一步一個腳印去做,把這個整數一步步顛倒過來,然後判斷這兩個整數是否相等,如果相等那就是迴文數,否則就不是迴文數。
分析完了上代碼:
class Solution:
def isPalindrome(self, x: int) -> bool:
num = abs(x)
temp = str(num)
if x<0:
return False
else:
#字符串逆序判斷
if temp==temp[::-1]:
return True
#顛倒任何一個正數
res=0
while num>0:
res = res * 10 + num % 10
num = num//10
print(res)
if x>=0 and res==x:
return True
return False
總結:數字反轉是一個常用的操作應該記下來。