问题重述:
Determine whether an integer is a palindrome. Do this without extra space.
解答
注意3个问题
1)负数是不是回文数字:不是,因为-123321中,没有和符号对称的回文。
2)如果采用倒转整数的方法,倒转后是否超出边界.
3)边界问题:输入的数字是否超出边界。
class Solution {
public:
boolisPalindrome(int x) {
//判断正负
if(x < 0) return false;
x= abs(x);
if(x > 2147483647) return false;
longlong temp = x;
longlong result = 0;
while(temp){
result*= 10;
result+= temp % 10;
temp= temp / 10;
}
if(result > 2147483647) return false;
if((int)result == x) return true;
elsereturn false;
}
};
经过验证,时间效率都符合要求,Accepted.