slt
思路1 不断把x从地位取走,然后从高位构建一个新的数
注意如果x以0结尾直接pass掉,因为不可能以0开头。
思路2 依次取左右两边的数字来比较
首先题目提示我们不要用转换成字符串的方法来做。如果转换成字符串,用python一行就可以搞定。
return int(str(abs(x))[::-1]) == x
我们这里的思路是用一个ranger
来表示输入的x的位数,如x是123321
,我们的ranger
就是100000
。然后分别取出左右两边的数进行比较。
注意python3
中的取整除法是//
class Solution:
def isPalindrome(self, x: int) -> bool:
if x < 0:
return False
ranger = 1
while x // ranger >= 10:
ranger *= 10
while x:
left = x // ranger
right = x % 10
if left != right:
return False
x = (x % ranger) // 10
ranger //= 100
return True
Last updated
Was this helpful?