9. 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 ture ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
解析
第一种我们使用字符串,第二种我们尝试不适用额外空间,直接算出来首尾数字
class Solution {
public boolean isPalindrome(int x) {
if(x<0) return false;
String num = String.valueOf(x);
char[] vals = num.toCharArray();
int start = 0;
int end = vals.length-1;
while(start<end){
if(vals[start++]!=vals[end--]){
return false;
}
}
return true;
}
}
class Solution {
public boolean isPalindrome(int x) {
//边界判断
if (x < 0) return false;
int div = 1;
//
while (x / div >= 10) div *= 10;
while (x > 0) {
int left = x / div;
int right = x % 10;
if (left != right) return false;
x = (x % div) / 10;
div /= 100;
}
return true;
}
}
注意:本文归作者所有,未经作者允许,不得转载