LeetCode 刷題筆記 - 9. 迴文數

難度:

簡單swift

描述:

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

示例

1:
輸入: 121
輸出: true
複製代碼
2:
輸入: -121
輸出: false
解釋: 從左向右讀, 爲 -121 。 從右向左讀, 爲 121- 。所以它不是一個迴文數。
複製代碼
3:
輸入: 10
輸出: false
解釋: 從右向左讀, 爲 01 。所以它不是一個迴文數。
複製代碼

來源:力扣(LeetCode) 連接:leetcode-cn.com/problems/pa… 著做權歸領釦網絡全部。商業轉載請聯繫官方受權,非商業轉載請註明出處。網絡


語言:

swiftui

解析:

又到迴文數了,迴文數就是翻過來倒過去都同樣。很明顯負數不是,先 pass 掉。而後判斷正數,這裏我用到了一個辦法,我去構造兩個數字,比較迴文數的左右部分是否相等。left爲數字的左半部分,right爲該數字的右部分的倒序。本題比較簡單,就是求10的餘數等等相關操做。一樣須要注意原數字的長度爲奇數仍是偶數。spa

代碼以下:code

class Solution {
    func isPalindrome(_ x: Int) -> Bool {
        if x < 0 {
            return false
        }
        var left = x, right = 0, index = 0
        let numberLength = String(x).count
        while index < numberLength / 2 {
            let end = left % 10
            right = right * 10 + end
            left /= 10
            index += 1
        }
        if numberLength % 2 != 0 {
            left /= 10
        }
        if left == right {
            return true
        } else {
            return false
        }
    }
}
複製代碼

總結

沒啥可總結的。leetcode

相關文章
相關標籤/搜索