思路1:
將問題轉爲判斷迴文字符串
代碼1:
class Solution {
public boolean isPalindrome(int x) {
if(x <0) return false;
if(x ==0) return true;
//int轉爲String
String str = Integer.toString(x);
//String轉爲char[]
char[] c = str.toCharArray();
for(int i =0; i<c.length/2; i++){
if(c[i] != c[c.length-1-i])
return false;
}
return true;
}
}
思路2:
繼續作爲int類型的問題來解決,利用%和/符號來獲取位數並比較。
代碼2:
class Solution {
public boolean isPalindrome(int x) {
//邊界判斷
if (x < 0) return false;
int div = 1;
//得到x的位數
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;
//位數-2
div /= 100;
}
return true;
}
}