问题
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121 输出: true示例 2:
输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:
输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。
解答
思路一:转化成字符串。
class Solution {
public boolean isPalindrome(int x) {
int num = x;
String s = String.valueOf(num);
int len = s.length();
boolean flag = true;
for (int i = 0;i<len/2;i++){
if (s.charAt(i)!=s.charAt(len-i-1)){
flag = false;
break;
}
}
return flag;
}
}
进阶要求:不转成字符串
思路一:将数字转置查看是否相等
class Solution {
public boolean isPalindrome(int x) {
int num = x;
if (num<0) return false;
int reverse = 0;
int reminder = 0;
while(num>0){
reminder = num%10;
num = num/10;
reverse = reminder + 10 * reverse;
}
if (reverse == x)return true;
else return false;
}
}