前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode - #9 判断回文数字

LeetCode - #9 判断回文数字

作者头像
Swift社区
发布2021-12-06 13:46:55
1.8K0
发布2021-12-06 13:46:55
举报
文章被收录于专栏:Swift社区

前言

1. 描述

给定一个整数 x,如果 x 是回文整数,则返回 true

当一个整数向后读与向前读相同时,它就是回文。例如,121 是回文,而 123 不是。

2. 示例

示例 1

代码语言:javascript
复制
输入:  x = 121
输出:  真

示例 2

代码语言:javascript
复制
输入:  x = -121
输出:  假
说明:  从左到右依次为 -121。 从右到左,它变成 121-。 因此它不是回文。

示例 3

代码语言:javascript
复制
输入:x = 10
输出: 假
说明: 从右到左读取 01。 因此它不是回文。

示例 4

代码语言:javascript
复制
输入:x = -101
输出: 假

约束条件:

  • -2^31 <= x <= 2^31 - 1

**跟进:**你能在不将整数转换为字符串的情况下解决它吗?

3. 答案

代码语言:javascript
复制
class PalindromeNumber {
    func isPalindrome(x: Int) -> Bool {
        guard x >= 0 else {
            return false
        }
        var x = x
        var div = 1
        while (x / div >= 10) {
            div = div * 10
        }
        while (x > 0) {
            var left = x / div
            var right = x % 10
            if (left != right) {
                return false
            }
            x = (x % div) / 10
            div = div / 100
        }
        return true
    }
}
  • 主要思想:负数不是回文。
  • 时间复杂度:O(1)
  • 空间复杂度:O(1)

该算法题解的仓库:LeetCode-Swift[2]

点击前往 LeetCode[3] 练习

参考资料

[1]

@故胤道长: https://m.weibo.cn/u/1827884772

[2]

LeetCode-Swift: https://github.com/soapyigu/LeetCode-Swift

[3]

LeetCode: https://leetcode.com/problems/palindrome-number/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Swift社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 描述
  • 2. 示例
  • 3. 答案
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档