layout: post
title: "leetcode-9 Palindrome Number 回文"
tags:
- leetcode
- python
- algorithm
- Palindrome 回文
Palindrome Number
判斷一個(gè)整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。
示例 1:
輸入: 121
輸出: true
示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個(gè)回文數(shù)。
示例 3:
輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 。因此它不是一個(gè)回文數(shù)。
進(jìn)階:
你能不將整數(shù)轉(zhuǎn)為字符串來(lái)解決這個(gè)問(wèn)題嗎?
Solution:
class Solution:
def isPalindrome(self, x: int) -> bool:
if x<0 or (x%10 == 0 and x!=0) :
return False #負(fù)數(shù)都不是回文,末位是0的不是回文除了0
r=0
while x>r:
r = r*10 + x%10 #r增加翻轉(zhuǎn)的1位數(shù)
x = x//10 #向下取整 x減少翻轉(zhuǎn)的一位數(shù)
if x == r or x==r//10: #如果位數(shù)是奇數(shù),就把中間的那位去掉
return True
else:
return False
沒(méi)有用到字符串

pic