回文数-leetCode-009

article/2025/8/21 3:01:12

 

回文数是指正序(从左向右)和倒序(从右向左)读都相同的整数。例如,121 是回文数,而 -121 和 10 不是。本文将介绍两种解法:字符串转换法反转一半数字法,并分析它们的复杂度。


解法一:字符串转换法

思路

将整数转换为字符串,然后使用双指针从两端向中间比较字符是否相同。如果所有字符都相同,则是回文数;否则不是。

步骤
  1. 处理负数:负数直接返回 false(因为有负号)。

  2. 转换为字符串:将整数转为字符串。

  3. 双指针比较

    • 左指针从字符串头部开始,右指针从尾部开始。

    • 依次比较左右指针的字符,若不同则返回 false

    • 若所有字符相同,则返回 true

复杂度
  • 时间复杂度:O(n),其中 n 是数字的位数。需要遍历一半字符串。

  • 空间复杂度:O(n),存储字符串需要额外空间。

    class Solution {public boolean isPalindrome(int x) {// 负数直接返回 falseif (x < 0) {return false;}// 将整数转为字符串String numStr = String.valueOf(x);int left = 0; // 左指针int right = numStr.length() - 1; // 右指针// 双指针向中间移动,比较字符while (left < right) {if (numStr.charAt(left) != numStr.charAt(right)) {return false; // 字符不同,不是回文数}left++;right--;}return true; // 所有字符相同,是回文数}
    }

解法二:反转一半数字法(性能最高的解法)

 反转一半数字法是性能最优的解决方案。它通过数学运算只反转数字的后半部分,并与前半部分比较,避免了字符串转换和完全反转的溢出风险。

算法原理
  1. 处理特殊情况

    • 负数直接返回 false

    • 非零且末位为0的数(如10)直接返回 false

  2. 反转后半部分数字

    • 当剩余数字 > 反转数字时循环

    • 每次取原数字末位拼接到反转数字末尾

    • 原数字移除末位

  3. 比较两部分

    • 偶数位:反转部分 == 剩余数字

    • 奇数位:反转部分/10 == 剩余数字(忽略中间位)

性能分析
  • 时间复杂度:O(log₁₀n)

    • 循环次数 = 数字位数/2

    • 例如:12321 只需循环2次

  • 空间复杂度:O(1)

    • 仅使用常数级变量

class Solution {public boolean isPalindrome(int x) {/* 特殊情况处理:1. 负数不可能是回文数2. 非零数末位为0时不是回文数(因为数字开头不能是0) */if (x < 0 || (x % 10 == 0 && x != 0)) {return false;}int reversedHalf = 0; // 存储反转的后半部分数字// 当剩余数字 > 反转部分时继续循环while (x > reversedHalf) {// 将x的末位拼接到reversedHalf末尾reversedHalf = reversedHalf * 10 + x % 10;// 移除x的末位x /= 10;}/* 比较两部分:1. 偶数位数:x == reversedHalf2. 奇数位数:x == reversedHalf/10(忽略中间位) */return x == reversedHalf || x == reversedHalf / 10;}
}
优势说明
  1. 最优时间复杂度:仅需 O(log₁₀n) 时间

  2. 常数空间:无额外数据结构

  3. 避免溢出:只反转一半数字,确保不会溢出

  4. 数学运算高效:除法和取模操作是CPU基础指令

边界处理
  • 最大整数测试:2147483647 → 非回文数

  • 最小负数测试:-2147483648 → 直接返回false

  • 零处理:0 → 满足x==reversedHalf(0==0)

  • 末位零处理:10/20/100等 → 开头检测直接返回false


http://www.hkcw.cn/article/JHpPeFCXmL.shtml

相关文章

广东东莞发生小车坠桥事故,5人死亡 事故引发广泛关注

广东东莞发生小车坠桥事故,5人死亡 事故引发广泛关注!近日,广东东莞环莞快速路虎门段发生了一起交通事故,引起了广泛关注。5月29日晚,虎门镇“519”事故工作专班发布了情况通报。责任编辑:0882

高校校长被曝论文涉嫌抄袭 校长职务被免

近日,有网民向媒体反映“烟台科技学院校长硕士论文涉嫌严重抄袭”,引发社会广泛关注。经核查,情况属实。学校董事会高度重视,为严肃学术纪律,维护高校声誉和教育公信力,决定免去马红坤同志烟台科技学院校长职务。感谢社会各界对高等教育学术规范的关注。烟台科技学院将以…

多模态大语言模型arxiv论文略读(九十八)

Accelerating Pre-training of Multimodal LLMs via Chain-of-Sight ➡️ 论文标题&#xff1a;Accelerating Pre-training of Multimodal LLMs via Chain-of-Sight ➡️ 论文作者&#xff1a;Ziyuan Huang, Kaixiang Ji, Biao Gong, Zhiwu Qing, Qinglong Zhang, Kecheng Zhe…

Triton推理服务器部署YOLOv8(onnxruntime后端和TensorRT后端)

文章目录 一、Trition推理服务器基础知识1)推理服务器设计概述2)Trition推理服务器quickstart(1)创建模型仓库(Create a model Repository)(2)启动Triton (launching triton)并验证是否正常运行(3)发送推理请求(send a inference request)3)Trition推理服务器架…

端午连休3天高速收费 假期出行需注意

根据国务院办公厅《关于2025年部分节假日安排的通知》,端午节放假时间为5月31日(周六)至6月2日,共3天。此次端午节放假不调休。责任编辑:zx0176

6月北方旱区旱情将有所缓和 降水增多缓解干旱

5月29日,中国气象局举行新闻发布会,会上回顾了5月全国天气气候特征,并发布了“端午”假期天气预报及6月气候趋势预测。5月全国天气气候特征包括:今年首次高温过程影响华北、华中、西北等地;陕甘宁晋豫等地气象干旱阶段性发展;有6次强对流天气过程和4次沙尘天气过程影响我…

Git 全平台安装指南:从 Linux 到 Windows 的详细教程

目录 一、Git 简介 二、Linux 系统安装指南 1、CentOS/RHEL 系统安装 2、Ubuntu/Debian 系统安装 3、Windows 系统安装 四、安装后配置&#xff08;后面会详细讲解&#xff0c;现在了解即可&#xff09; 五、视频教程参考 一、Git 简介 Git 是一个开源的分布式版本控制系…

Spring:从青铜到王者,你的Java修炼手册

一、Spring家族宇宙&#xff1a;原来你是这样的框架&#xff08;青铜段位&#xff09; 1.1 Spring的"前世今生"&#xff1a;从泡面到满汉全席 ​​2002年的泡面哲学​​&#xff1a;Rod Johnson在厨房煮泡面时突然顿悟&#xff1a;"Java开发为什么不能像泡面一…

SpringSecurity

SpringSecurity 一&#xff1a;快速入门&#xff1a; 创建好一个springboot-maven项目&#xff0c;写好启动类&#xff0c;并且编写简单的controller&#xff0c;加上以下依赖&#xff1a; </dependency><dependency><groupId>org.springframework.boot&l…

SQL Server 代理作业故障排查:关键任务失败的根因分析

关键词:SQL Server 代理作业故障,MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb,BizTalk Server,数据库维护,关键任务失败,作业异常,根因分析,死锁,事务日志,磁盘空间,权限问题,SQL Server Agent,故障排查 SQL Server 代理作业(SQL Server Agent Jobs)…

业内:董宇辉拒绝“孙东旭”!

业内:董宇辉拒绝“孙东旭”!短短一年半时间,董宇辉将与辉同行团队从70人扩张至300余人,核心主播不足十人,却创造出百亿元的年销售额。董宇辉是核心主播,也是老板、是CEO。今年4月的一次访谈中,新浪财经CEO邓庆旭问董宇辉“你有一个职业经理人,帮你打点这一切吗?”董宇…

俄罗斯无人机自主任务规划!UAV-CodeAgents:基于多智能体ReAct和视觉语言推理的可扩展无人机任务规划

作者&#xff1a;Oleg Sautenkov 1 ^{1} 1, Yasheerah Yaqoot 1 ^{1} 1, Muhammad Ahsan Mustafa 1 ^{1} 1, Faryal Batool 1 ^{1} 1, Jeffrin Sam 1 ^{1} 1, Artem Lykov 1 ^{1} 1, Chih-Yung Wen 2 ^{2} 2, and Dzmitry Tsetserukou 1 ^{1} 1单位&#xff1a; 1 ^{1} 1斯科尔…

杀人嫌犯潜逃27年终落网 乡音破解身份密码

27年前,时年21岁的外省小伙阿亮在当地与一猪肉摊摊主发生口角,一时冲动持刀将其杀害后隐姓埋名潜逃。由于当时技术条件有限,追凶工作一度陷入困境。27年后,阿亮辗转多地来到扬州仪征。仪征警方凭借一句乡音破解了他的“身份密码”,成功将其抓获归案。这起尘封多年的命案积…

贵州58岁产妇产下一名男婴 高龄母亲的奇迹

5月27日17点10分左右,在遵义市妇幼保健院内,一名体重2600克的健康男婴顺利降生。这位男婴的母亲是58岁的李女士,她是该院截至目前妊娠年龄第二大的产妇。作为李女士的手术大夫,遵义市妇幼保健院产科主任马玲玲介绍,尽管李女士身体条件尚可,没有基础性疾病,但因其高龄且此…

vue3 el-upload实现上传图片为base64格式并存储进表单

一、template <el-form-item label"图片" prop"images"><el-uploadaction"#":accept"[image/jpeg, image/png, image/gif].join(,)"list-type"picture-card":auto-upload"true":on-change"handleU…

DMBOK对比知识点对比(3)

1.数据仓库建设方法(Inmon、Kimball) 数据仓库建设方法(Inmon、Kimball)P293方法

制造业的未来图景:超自动化与劳动力转型的双重革命

市场现状&#xff1a;传统制造业的转型阵痛 当前全球制造业正站在历史性变革的十字路口。埃森哲对552位工厂经理的全球调研显示&#xff0c;60%的受访者将劳动力转型视为首要战略任务​​&#xff0c;而63%的工厂正在加速部署自动化技术[1]。超过​75%的工厂经理​​认为&…

上传图片转成3D VR效果 / 用photo-sphere-viewer实现图片VR效果 / VR效果在项目中落地实践

系统简介 : 该系统为 react TS tailwindcss photo-sphere-viewer 的响应式 VR360 项目, 上传图片后可实现手动旋转 3D 图片,还包含了 6 贴图立方体展示和 6 贴图动态展示 目前为单图切换模式 全部页面概览 这是单面VR页面的代码(gif展示页面) import React, { useRef, u…

【论文精读】2024 ECCV--MGLD-VSR现实世界视频超分辨率(RealWorld VSR)

文章目录 一、摘要二、问题三、Method3.1 Latent Diffusion Model3.2 Motion-guided Diffusion Sampling3.3 Temporal-aware Decoder Fine-tuning 四、实验设置4.1 训练阶段4.2 训练数据 贡献总结 论文全称&#xff1a; Motion-Guided Latent Diffusion for Temporally Consis…