原题链接:#9 Palindrome Number
要求:
判断一个整数是否是回文数,不要使用额外的存储空间
难度:简单
分析:
题目限制不允许使用额外的存储空间应指不允许使用O(n)的内存空间,O(1)的内存用于存储中间结果是可以接受的。于是考虑将该整型数反转,然后与原数字进行比较。
注:没有看到有关负数是否可以是回文数的明确结论,例如-1,-121等。根据LeetCode Judging结果暂认为所有负数都不是回文数
解决方案:
Java - 388ms
public boolean isPalindrome(int x) { if(x < 0){ return false; } int originNum = x; int num = x % 10; x = x / 10; while(x != 0){ num *= 10; num += x%10; x /= 10; } return num==originNum; }
Python - 269ms
def isPalindrome(self, x): if (x < 0): return False originNum = x num = x % 10 x /= 10; while (x!=0): num *= 10 num += x%10 x /= 10 return num==originNum