題目
給你一個整數 x ,如果 x 是一個回文整數,回傳 true ;否則,回傳 false ,
回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數,例如,121 是回文,而 123 不是,
示例 1:
輸入:x = 121
輸出:true
示例 2:
輸入:x = -121
輸出:false
解釋:從左向右讀, 為 -121 , 從右向左讀, 為 121- ,因此它不是一個回文數,
示例 3:
輸入:x = 10
輸出:false
解釋:從右向左讀, 為 01 ,因此它不是一個回文數,
示例 4:
輸入:x = -101
輸出:false
解法
解法一: 轉換為字串判斷
class Solution {
// 方法一,轉換為字串判斷
public boolean isPalindrome(int x) {
if(x < 0){
return false;
}
String str = x+"";
char[] array = str.toCharArray();
for(int i = 0; i < array.length/2 ; i++){
if(array[i] != array[array.length-i-1]){
return false;
}
}
return true;
}
}
解法二: 先轉換為反轉后的整數,然后和自身比較,如果相等,說明是回文數
class Solution {
// 方法二,先轉換為反轉后的整數,然后和自身比較,如果相等,說明是回文數
public boolean isPalindrome(int x) {
if(x < 0){
return false;
}
long n = 0;
int tmp = x;
while(tmp != 0){
n = n * 10 + tmp % 10;
tmp = tmp/10;
}
if(n > Integer.MAX_VALUE){
return false;
}
return x == (int)n;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/261464.html
標籤:其他
上一篇:c語言中的字串函式的模擬實作
