【LeetCode】9、回文数

【LeetCode】9、回文数

文章目录

  • [一、数学: 除法和取模](#一、数学: 除法和取模)
    • [1.1 数学: 除法和取模](#1.1 数学: 除法和取模)
  • 二、多语言解法

一、数学: 除法和取模

1.1 数学: 除法和取模

例如 15251, offset 也是五位数的 10000

先判断首1和尾1, 再变为 525, offset 变为 100

再判断首5和尾5, 再变为 2, offset 变为 1

整个过程若都符合, 则符合回文数

其中, 过程中需借助 offset 完成

  • 例如 15251, 则 offset 为 10000
  • 例如 152251, 则 offset 为 100000
go 复制代码
// go
func isPalindrome(x int) bool {
    if x < 0 {return false} // 负数肯定不是回文数

    offset := 1
    // x = 15251, offset = 1
    // x = 15251, offset = 10
    // x = 15251, offset = 100
    // x = 15251, offset = 1000
    // x = 15251, offset = 10000, for 循环不满足, 跳出循环, offset 变为 10000
    for (x / offset >= 10) {
        offset *= 10
    }

    for x != 0 {
        if x/offset != x%10 { // 首位是 x/offset, 末尾是 x%10, 如 15251 的首1和尾1
            return false
        }
        x = (x % offset) / 10 // 移除x 的首位和尾位, 如 15251 变为 525
        offset /= 100 // 使 offset 再次和 x 的位数对齐, 即移除两位, 如 10000 变为 100
    }
    return true
}

参考 左神视频 超级回文数 中的一个步骤: 详见视频第1h处

二、多语言解法

C p p / G o / P y t h o n / R u s t / J s / T s Cpp/Go/Python/Rust/Js/Ts Cpp/Go/Python/Rust/Js/Ts

cpp 复制代码
// cpp
go 复制代码
// go 同上
python 复制代码
# python
rust 复制代码
// rust
js 复制代码
// js
ts 复制代码
// ts
相关推荐
初夏睡觉21 分钟前
原创题目 - 空壳恋爱
c++·算法·dp·oi·信息学·原创题目·值得挑战的题目
Buke..39 分钟前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法
java·javascript·爬虫·python·算法
闲研随记1 小时前
【文献阅读 ICLR 2026】RL算法:DECS
算法·llm·强化学习·iclr·rl
量化小c1 小时前
一行代码查 BTCUSDT 和 AAPL 最新价?QuantDash 统一多市场实时行情接口实战
后端·算法·github
机器人梦想家2 小时前
具身机器人视觉服务的异步回调与并发控制
数据库·算法·机器人
我命由我123453 小时前
人脸识别 - 人脸识别选帧
java·人工智能·python·算法·安全·java-ee·人脸识别
时针滴滴答啊3 小时前
最大子数组和
算法·leetcode·职场和发展
五月底_3 小时前
LIS算法
python·算法·最长子序列
Yfhonier4 小时前
【素数定理】素数个数的位数
c++·算法·素数
学学酱快乐4 小时前
2026年PMP考试生命周期选择决策树精讲:从需求判断到混合型统一框架的应试全攻略
算法·决策树·机器学习·pmp新版考试大纲·pmp新题型·pmp培训哪家好·pmp培训机构推荐