判斷一個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
示例 1:
輸入: 121
輸出: true
示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。是以它不是一個回文數。
示例 3:
輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 。是以它不是一個回文數。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/palindrome-number
将數字後半段進行翻轉,若和前半段相等,則是回文數。
class Solution {
public boolean isPalindrome(int x) {
if(x < 0 || (x%10 == 0 && x != 0))return false;//為0或者末尾為0直接傳回false
int temp = 0;
while(x > temp){//若後半段翻轉數字大于前半段時,說明已經複制成功
temp = temp*10 + x%10;
x /= 10;
}
return temp == x || x == temp/10;//當數字個數為偶數時,直接拿temp進行判斷,若為奇數,需要去掉尾部數字,如121,temp=12,去掉尾部 = 1,x = 1,temp == x,傳回true
}
}