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

相关文章
相关标签/搜索