Convert to String
class Solution:
def isPalindrome(self, x: int) -> bool:
if x<0: return False
x = str(x)
l, r = 0, len(x)-1
while l<r:
if x[l]!=x[r]:
return False
l += 1
r -= 1
return True
Without Converting to String
Error: check the digit one by one
class Solution:
def isPalindrome(self, x: int) -> bool:
if x<0: return False
n = self.count(x)
while x>=10:
first = x//10**(n-1)
last = x%10
if first != last: return False
x = (x-first*10**(n-1))//10
n -= 2
return True
def count(self,x):
c = 0
while x>=10**c:
c += 1
return c
Edge Case: 1000021