一、 问题描述
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;
}
};
本文详细解析了LeetCode上的第9题——判断一个整数是否为回文数。通过分析题目的核心概念,提供了一种有效的算法解决方案,并附带了C++代码实现。该算法首先排除负数,然后通过比较整数前后对应的数字来判断其是否为回文。

被折叠的 条评论
为什么被折叠?



