這道題迴文數字判斷,首先想到的就是雙指針。但是,題目說不可以將數字轉化成字符串,所以,這道題就蛻變成了一個徹底的數學題了。。。
使用的一種方法是將數字中的每一位取出來,放到一個數組中,然後比較這個數組中的對應位是否相等來判斷是否爲迴文字符串
class Solution {
public:
bool isPalindrome(int x) {
if( x < 0 ) return false;
int number[10]; //因爲數字最大爲 2147483647 10位就足夠
int i = 0, j;
while( x != 0)
{
number[i++] = x % 10;
x /= 10;
}
for( j = 0 ; j < i; j ++ ){
if( number[j] != number[-- i])
return false;
}
return true;
}
};