Determine whether an integer is a palindrome. Do this without extra space.
题意判断一个整数是否是回文数
注意一下几点:
1. 不能用额外的空间
2. 负数不是回文数
class Solution { public: int _size(int x){ int size = 0; int tx = x; while(tx){ tx /= 10; size++; } return size; } bool isPalindrome(int x) { if(x<0)return false; else if(x>=0 && x<=9)return true; else{ int size = _size(x); int head = x/(int)pow(10,size-1); int tail = x%10; if(head != tail){ return false; } x = x%(int)pow(10,size-1); x = x/10; int newsize = _size(x); if(size-newsize > 2) if(x%(int)pow(10, size-newsize-2) == 0) //考虑数后跟着一串0的情况 x = x/(int)pow(10, size-newsize-2); else return false; return isPalindrome(x); } } };
class Solution { public: bool isPalindrome(int x) { long long reverseX=0; if(x<0)return false; int xcopy=x; while(xcopy){ //将整数倒置 reverseX=reverseX*10+xcopy%10; xcopy/=10; } if(reverseX>INT_MAX)return false; //判断倒置后的结果是否越界 if(x==(int)reverseX)return true; //判断倒置结果和原数是否相等 return false; } };
LeetCode 009 Palindrome Number,布布扣,bubuko.com
LeetCode 009 Palindrome Number
原文地址:http://blog.csdn.net/harryhuang1990/article/details/25793079