Palindrome Number (Easy)

Description

Determine whether an integer is a palindrome. Do this without extra space.

Analysis

乱搞出来了= =。这题的关键在于只能使用O(1)的空间复杂度。
我的做法是将整数中间划分。如1221则变成x = 12,y = 12.
而奇数位的整数进行一下特判即可,因为奇数位的整数肯定会出现满足一个情况
即x>=y10 && x< y100。对此之前处理掉末尾是0的所有整数

My Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//C++
class Solution {
public:
bool isPalindrome(int x) {
if(x<10&&x>=0)
return true;
if(x%10==0||x<0)
return false;
int y = 0;
while(x){
if(x==y)
return true;
if(x>=y*10&&x<y*100)
{
y = y*10+x%10;
if(x==y)
return true;
return false;
}
y = y*10+x%10;
x/=10;
if(x<y)
return false;
}
return false;
}
};