给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
输入:x = 121
输出:true
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
解法一:
利用StringBuffer
思路 : 负数肯定不是回文数 直接返回false
创建 StringBuff对象 进行比较
通过String.valueof 方法 转成一个字符串进行 比较
public boolean isPalindrome(int x) {
if(x<0){
return false;
}
StringBuffer s= new StringBuffer(String.valueOf(x));
return s.reverse().toString().equals(String.valueOf(x));
}
解法二:
数学(推荐)
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
int cur = 0;
int num = x;
while (num!=0){
cur = cur*10 +num%10;
num /=10;
}
return cur==x;
}