判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
题解:转换为列表用两个指针 , 一个从前 , 一个从后判断是否相同即可完成 。你也可以将整个字符串逆序从而判断。
class Solution(object):
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""
str_x = list(str(x))
i , j = 0 , len(str_x) - 1
while i < j :
if str_x[i] != str_x[j]:
return False
i += 1
j -=1
return True
反转一半的数字,即可获得很好的效率
class Solution(object):
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""
if x < 0 or (x and x % 10 == 0):
return False
y = 0
while x > y:
y = 10 * y + x % 10
x //= 10
return x == y or x == y // 10
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。