题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。 提示:-2^31 <= x <= 2 ^31 - 1 方法一:思路:回文数是从左往右和从右往左来看数字是一样的,所以左边第一位==右边第一位以此类推。要验证该数是不是回文数我们可以取出每一位数再逆序组成新的数字看原数字和新数字是否相等,相等为回文数,不等不是回文数(负数不是回文数)
class Solution {
public boolean isPalindrome(int x) {
if(x < 0){
return false;
}
int result = 0;
int num;
num = x;
while(num > 0){
result = result * 10 + num % 10;
num /= 10;
}
return result == x;
}
}
方法二:思路:第一步用字符串来逆序存储数字,第二步将字符串转变成数字,第三步和原来的数字进行比较 Java中加法运算符的妙用当加法的一个操作数为字符串时会进行拼接运算。
class Solution {
public boolean isPalindrome(int x) {
if(x < 0){
return false;
}
if(x == 0){
return true;
}
String s = "";
int num = x;
int result;
while(num > 0){
s = s + num % 10;
num /= 10;
}
long news = Long.parseLong(s);
return news == x;
}
}
|