本题正常人思路都是用字符串处理。
这里注意一下Java中字符串是如何翻转的:
class Solution { public boolean isPalindrome(int x) { String original = String.valueOf(x); return new StringBuilder(original).reverse().toString().equals(original); } }
Python就更简单了:
class Solution: def isPalindrome(self, x: int) -> bool: return str(x)==str(x)[::-1]
但是本题中延伸问的是如果不用字符串怎么做,那思路可以参考第7题。
class Solution { public boolean isPalindrome(int x) { if(x<0)return false; else if(x==0) return true; int x_original = x; int result = 0; while(x!=0){ result = result*10 + x%10; x/=10; } return result==x_original; } }
class Solution: def isPalindrome(self, x: int) -> bool: if x<0: return False elif x==0: return True result = 0 x_original = x while x!=0: result = result*10 + x%10 x //= 10 return result == x_original