1,O(n)
C++:
class Solution {
public:
bool isPalindrome(int x) {
if ( x < 0 ) {
return false;
}
std::vector<int> numbers;
int rest = x;
while ( rest ) {
int number = rest % 10;
numbers.push_back(number);
rest = rest / 10;
}
int i = 0;
int j = numbers.size() - 1;
while ( i < j ) {
if ( numbers[i] != numbers[j] ) {
return false;
}
++i;
--j;
}
return true;
}
};
1,O(1)
C++:
class Solution {
public:
bool isPalindrome(int x) {
if ( x < 0 || ( x % 10 == 0 && x != 0 ) ) {
return false;
}
int reversedNumber = 0;
while ( x > reversedNumber ) {
reversedNumber = reversedNumber * 10 + x % 10;
x /= 10;
}
return ( x == reversedNumber || x == reversedNumber / 10 );
}
};
网友评论