9. Palindrome Number【medium】
解题思路:
利用第七题的代码,将数字反转,判断与原数字是否相等即可,这里考虑到负数全部都不是回文数字,所以直接返回false。
实现代码:
// 9. Palindrome Number
int reverse(int x) {
long result = 0, longX = abs((long)x);
while (longX > 0) {
result = result * 10 + longX % 10;
longX /= 10;
}
result = (x > 0) ? result : -result;
if (result > INT32_MAX || result < INT32_MIN) {
return 0;
} else {
return (int)result;
}
}
bool isPalindrome(int x) {
if (x < 0) {
return false;
} else {
return (x == reverse(x));
}
}
问题描述:
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.
Example 3:
Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
Follow up:
Coud you solve it without converting the integer to a string?