题目描述
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。
思路:
一种是利用StringBuffer的反转函数来处理,有点慢
二种是将直接算出他的回文数
第一种代码:
class Solution {
public boolean isPalindrome(int x) {
StringBuffer s = new StringBuffer();
s.append(x);
//System.out.println(s.reverse()+"--"+String.valueOf(x));
try {
if(s.reverse().toString().equals(String.valueOf(x))){
return true;
}
}catch (Exception e){
//e.printStackTrace();
return false;
}
return false;
}
}
速度:花了230ms

第二种代码:即求出回文数,并判断,没啥难度,省去函数调用会快点
class Solution {
public boolean isPalindrome(int x) {
int y = x;
if(x<0)
return false;
else if(x==0){
return true;
}else {
int length = String.valueOf(y).length();
String result = "";
for(int i = length-1;i>=0;i--){
int extra = y%10;
y = y/10;
result = result + extra;
}
if(result.equals(x+"")){
return true;
}
}
return false;
}
}
速度:107ms,应该还有办法吧

来源:https://www.cnblogs.com/Yintianhao/p/9943908.html