算法:回文数 回文数算法描述算法实现算法解析避坑提醒溢出判断情况 1res MAX / 10情况 2res MAX / 10情况 3res MAX / 10算法描述给你一个整数 x 如果 x 是一个回文整数返回 true 否则返回 false 。回文数是指正序从左向右和倒序从右向左读都是一样的整数。例如121 是回文而 123 不是。 -121不是回文因为 从右向左读, 为 121-提示不用将整数转换成字符串处理。算法实现publicbooleanisPalindrome(intx){if(x0){//因为负数肯定不是回文数returnfalse;}intreversXreverse(x);returnreversXx;}//数字翻转publicintreverse(intx){intres0;intMAXInteger.MAX_VALUE;//2147483647while(x!0){intdigitx%10;//取当前最后一位数字,比如12345取5xx/10;// 去掉最后一位比如12345变成1234// 预判溢出,如果 res * 10 digit MAXif(resMAX/10||(resMAX/10digit7)){return0;}resres*10digit;}returnres;}算法解析避坑提醒不能先算 res*10digit 再比较因为可能会超出 int 范围会发生数值截断判断失效不能用 long 中转部分面试要求纯 int 运算不允许更大类型溢出判断MAX2147483647MAX/10214748364情况 1res MAX / 10设 res 214748365res * 10 2147483650哪怕 digit 0结果是 21474836502147483650 2147483647一定溢出这里的逻辑是res 只要大于 214748364res×10 本身就已经大于 MAX再加任何 0~9 的 digit只会更大必然溢出。情况 2res MAX / 10res*10 2147483640digit ≤72147483640 digit ≤ 2147483647安全digit ≥82147483640 digit ≥ 2147483648溢出情况 3res MAX / 10res×10 最大为 2147483630加 9 也只有 2147483639 MAX永远安全
💡
读完这篇文章,你可以带走什么

本文来自编程新知一线开发与建站实战沉淀:讲清原理、给出可复现步骤、标注避坑要点。看完后可以直接在你的项目或网站中落地验证。

编
编程新知内容团队
一线开发 · 建站实施 · 持续更新
由资深前端工程师、后端架构师与建站实施人员共同维护,坚持"真实案例 + 完整步骤 + 避坑指南"的内容准则。如果你在落地中遇到问题,欢迎联系我们交流。

想把这套方案用到自己的项目上?

编程新知提供技术答疑与网站建设一站式服务,欢迎联系我们获取针对性建议。

联系工程师
📚

系统学习该技术

进入对应栏目,从基础到进阶完整学习,配套案例与避坑指南。

前往栏目 →
🏗️

需要落地实施

企业建站、SEO 优化、服务器部署等需求,交给工程师一步到位。

了解服务 →
💬

还有疑问

技术难题或方案咨询,联系编程新知获取一对一的专业建议。

联系我们 →