LeetCode问题9
Palindrome Number
问题描述如下:
Determine whether an integer is a palindrome. Do this without extra space.
关键在不占用额外的空间的情况下生成它的回文序列,然后作差即可。
如果相等,说明回文,如果不相等说明不是回文。
注意点:1、负数不是回文序列;2、在生成整数的回文如果计算过程溢出,当然不是回文(回文序列与自己相同当然是不会溢出的)。
问题难度Easy,代码如下:
class Solution {
public:
bool isPalindrome(int x) {
if(x==INT_MAX||x==INT_MIN)
return false;
else if(x<0)
return false;
int xsave=x;
int px=0;
while(x!=0)
{
if(px<INT_MAX/10)
{
px=px*10+x%10;
x/=10;
}
else
return false;
}
if(px==xsave)
return true;
else
return false;
}
};
时间消耗仅仅超过30%的提交者。
转载于//www.cnblogs.com/Einsler/p/7608845.html
还没有评论,来说两句吧...