题目:Determine whether an integer is a palindrome. Do this without extra space
解法:问题是判断一个数是否回文数。回文数的特征是它从头到尾读和从尾到头读都是一样的。我的思路是,用两个临时变量,一个存储从头到尾读的数,另外一个存储从尾到头读的数,如果这两个值从头到尾一模一样的话,那么这个数就是回文数,否则,不是。
class Solution {
public:
bool isPalindrome(long int x) {
if (x < 0)
return false;//排除负数情况
int digit = 1;//判断X的位数
long int temp = x;
long int temp1 = x;
long int temp2 = x;//三个临时变量 用来存储值
while(temp/10 != 0) {
temp = temp/10;
digit++;
}//计算位数
temp = x;
for (int i = 0; i < digit/2; i++) {
int tail = temp%10;获取尾部的数
long int delete_ = 1;
temp = temp/10;
for (int j = digit; j > i+1; j--) {
temp1 = temp1/10;
delete_ = delete_*10;
}
int head = temp1;//获取头部的数
temp1 = temp2-delete_*head;
temp2 = temp1;
if(head != tail)
return false;
}
return true;
}
};