C语音版本
int getLength(int x)
{
int i = 0;
while(x){
x = x / 10;
i++;
}
return i;
}
bool isPalindrome(int x) {
int len = getLength(x);
char *y = (char*)malloc(sizeof(char)*(len+1));
// itoa(x,y,10);
int k = 0;
int j = 0;
if(x<0) return false;
for(int m = 0; m < len; m++)
{
y[k++] = x%10 + '0';
x = x /10;
}
y[k] = 0;
int a = strlen(y);
for (int i = 0; i<a/2 ;i++)
{
if (y[i]==y[a-i-1])
j++;
}
return j >= a/2 ? true : false;
}
写getLength函数的时候,初始化i=0时,我前面加了个static。导致提交不通过,但是单独测试用例能过。
C++版本属于学习版本,人家写的比较简洁。
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0 || (x % 10 == 0 && x != 0)) return false;
int revertNum = 0;
while (x > revertNum) {
revertNum = revertNum * 10 + x % 10;
x /= 10;
}
return x == revertNum || x == revertNum / 10;
}
};