9.Palindrome Number
9.Palindrome Number
难度:Easy
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
1
示例 1:
2
3
输入: 121
4
输出: true
5
示例 2:
6
7
输入: -121
8
输出: false
9
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
10
示例 3:
11
12
输入: 10
13
输出: false
14
解释: 从右向左读, 为 01 。因此它不是一个回文数。
Copied!
进阶: 你能不将整数转为字符串来解决这个问题吗?
不适用字符串,就直接从前后开始判断位置上的数字是否相等,用直接相加求回文数会有溢出错误,所以用减的.
1
class Solution {
2
public:
3
bool isPalindrome(int x) {
4
if(x<0 || x==10) return false;
5
if(x<10) return true;
6
int s=log10(x);
7
while(s>0){
8
int f=x/pow(10,s);
9
int l=x%10;
10
//cout<< f<<","<<l<<endl;
11
if (f!=l) return false;
12
x=(x-f*pow(10,s))/10;
13
s-=2;
14
15
}
16
return true;
17
}
18
};
Copied!
执行用时 : 80 ms, 在Palindrome Number的C++提交中击败了72.04% 的用户 内存消耗 : 8.4 MB, 在Palindrome Number的C++提交中击败了78.54% 的用户
Copy link