Python版
官方解法
思路还是很简单的,首先负数不会是回文数,因为最后一位是数字,第一位是负号,因此去掉负数
其次末尾是0的数如果该数不是0,则一定不是回文数
接下来就是想象将回文数折回来,应该是相等的。如果是偶数个,就完全相等,如果是奇数个,需要去掉最中间的那位
才用的方法是用变量reverse保存折回来的数即后半部分,x(即前半部分)小于reverse时停止
最后判断如果折回来的数和前半部分相等(偶数情况),或去掉中间值后相等(奇数情况),则是回文数,否则不是回文数
class Solution(object):
def isPalindrome(self, x):
if x<0 :
return 0
if x%10==0 and x!=0:
return 0
reverse=0
while(x>reverse):
reverse=reverse*10+x%10
x/=10
return x==reverse or x==reverse/10