Description
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1:
Input: 121
Output: true
Example 2:
Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
1. Revert Numbers | 翻转数字
采用第7题相同的解法,先把数字翻转过来,再和传入的数字进行比较是否相同。
class Solution {
public:
bool isPalindrome(int x) {
int pop = 0;
int copy = x;
long result = 0;
if (x < 0) {
return false;
}
while (x!=0) {
pop = x%10;
x = x/10;
result = result*10 + pop;
}
return (copy == result);
}
};
2. String | 可是好麻烦呀
3. Revert Half | 省一半的力气不好吗
class Solution {
public:
bool isPalindrome(int x) {
int sum = 0;
//if x is negative, or divisible by 10
if (x < 0 || x!=0 && x%10 == 0) return false;
while (x > sum) {
//reverse only half the number
sum = sum*10 + x%10;
x = x/10;
}
return (x == sum) || (sum == x/10);
}
}