一、 问题描述
Leecode第九题,题目为:
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.
问题理解为:
判断给定的整数是否是回文。当一个整数向后读取与向前读取相同的内容时,它就是一个回文。
二、解题思路
1、负数返回false;
2、正数返回true;
3、判断是否是回文。
三、实现代码
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0)
return false;
if (x < 10)
return true;
int t = x;
int d = 0;
while(t != 0) t /= 10, ++d;
int l = pow(10, d - 1);
int r = 1;
while( l >= r)
{
if (x / l % 10 != x / r % 10)
return false;
l /= 10;
r *= 10;
}
return true;
}
};