Determine whether an integer is a palindrome. Do this without extra space.
1.可以先转为字符串,再判断。
2.直接算出回文的数再直接比较。 // 发现问题:回文数会出现溢出情况,所以取int高一个量级的long
//
// start: judge whether it is a
palindrome
/************************************************************************/
/* method1: turn to int* then judge */
/************************************************************************/
bool isPalindrome_Convert(int x)
{
int bit[10];
if(x < 0) // 负数则不是
return false;
int idx = 0; // 位数
while(x)
{
bit[idx++] = x%10;
x /= 10;
}
for(int i = 0; i < idx/2; i++)
if(bit[i] != bit[idx-1-i])
return false;
return true;
}
/************************************************************************/
/* method2: find its palindrome and judge whether its' self */
/************************************************************************/
bool isPalindrome_Pair(int x)
{
long long tmpX = (long long)x;
long long pair = 0;
while(tmpX > 0) // > 0 && != 0
{
pair = pair*10 + tmpX%10;
tmpX /= 10;
}
return pair == (long long)x;
}
// end
//