题目
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
解题思路
思路一:
利用将整数转为字符串,然后利用stringbuffer的字符串反转后判断
public boolean isPalindrome(int x) {
String aString=String.valueOf(x);
StringBuffer aBuffer = new StringBuffer(aString);
String bString=aBuffer.reverse().toString();
if(aString.equals(bString)){
return true;
}else{
return false;
}
}
思路二
利用整数对10取余来判断数字左右是否对称。
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
if (x < 10) {
return true;
}
int len = 1;
while (x / len >= 10) {
len *= 10;
}
while(x > 0) {
int left = x/len;
int right = x%10;
if (left != right) {
return false;
} else {
x = (x%len)/10;
len/=100;
}
}
return true;
}
题目地址:https://leetcode-cn.com/problems/palindrome-number/description/