回文数

问题陈述

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

代码实现

基础解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//将数字转为字符串,双指针首位判断。
//数字转字符串方法:String.valueOf(x);x.toString();""+x;
class Solution {
public boolean isPalindrome(int x) {
String s=String.valueOf(x);
int i=0;
int j=s.length()-1;
while(i<j){
if(s.charAt(i)!=s.charAt(j)){
return false;
}else{
i++;
j--;
}
}
return true;

}
}

基于数学理解

1
2
3
4
5
6
7
8
9
10
11
12
class Solution{
public boolean isPalindrome(int x){
if(x<0) return false;//如为负数,必不能回文
int cur=0;
int num=x;
while(num!=0){//实现x反转
cur=cur*10+num%10;
num=num/10;
}
return cur==x;
}
}