LeetCode整数回文数Swift

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121
输出: true


示例 2:

输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。


示例 3:

输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。

解法:

整数反转,再与反转前判断是否相等

class Solution {
    func isPalindrome(_ x: Int) -> Bool {
        // 0是回文数
        if x == 0 {
            return true
        }
        // 排除负数以及可以整除10的数
        if x < 0 || x % 10 == 0 {
            return false
        }
        // 保存旧值
        let old = x
        var X = x
        var reverse = 0
        while X != 0 {
            reverse = reverse * 10 + X % 10
            X /= 10
        }
        // 反转后的数字如果和旧值相同就是回文数
        return old == reverse
    }
}

整数转字符串,字符串反转,再与反转前判断是否相等

class Solution {
    func isPalindrome(_ x: Int) -> Bool {
        let str: String = String(x)
        return String(str.reversed()) == str
    }
}
原文地址:https://www.cnblogs.com/huangzs/p/13724665.html