1.力扣算法

##1.1 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

  • 例如,121 是回文,而 123 不是。

示例 1:

1
2
输入:x = 121
输出:true

示例 2:

1
2
3
输入:x = -121
输出:false
解释:从左向右读,-121 。 从右向左读,121- 。因此它不是一个回文数。

示例 3:

1
2
3
输入:x = 10
输出:false
解释:从右向左读,01 。因此它不是一个回文数。

提示:

  • -231 <= x <= 231 - 1

思路

  1. 负数,000,101010 的倍数,都不可能是回文数。
  2. 利用整数反转来获取反转后的数,若和参数完全一致,则是回文数。

答案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public:
bool isPalindrome(int x) {
if(x<0||x%10==0&&x!=0)//0是回文数
return false;
int rx=0;
while(x>rx)
{
rx *=10;
rx +=x%10;
x/=10;
}
return rx == x || rx / 10 == x;
}
};