判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数
示例:
输入 121
输出 true
输入-121
输出false;
解法一:将x转为String类型,然后用char[] 来实现
代码如下
class Solution {
public boolean isPalindrome(int x) {
String s = String.valueOf(x);
char[] ch = s.toCharArray();
int length = ch.length-1;
int i=0;
while(length > i){
if (ch[length--] != ch[i++]){
return false;
}
}
return true;
}
}
解法二 不用转String类型,首先负数肯定不是回文数,非负整数用result保存其倒序数字,判断result和原数是否相等。
class Solution {
public boolean isPalindrome(int x) {
if(x<0){
return false;
}
int result = 0;
int temp = x;
while(x != 0){
result = result*10+x%10;
x/=10;
}
return temp==result;
}
}
解法二比解法一执行时间和运行内存都少。