天天看點

LeetCode#9 回文數

判斷一個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。

示例 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
    }
}