判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
##没啥说的,先通过x/10,x%10将整形转字符数组,然后两个指针分别指向首尾,相同就i--,j++,然后最后判断i是否小于j。是的话就是回文,不是就不是。
代码:
bool isPalindrome(int x){
if(x<0) return false;
char *str=(char*)malloc(20*sizeof(char));
int temp;
int flag;
int i=0;
while(x/10!=0){
flag=x%10;
str[i]=flag+'0';
i++;
x=x/10;
}
flag=x%10;
str[i]=flag+'0';
i++;
str[i]='\0';
int j=0;
i--;
while(i>=j && str[i]==str[j]){
i--;
j++;
}
if(i<j){
return true;
}else{
return false;
}
}