当前位置: 首页 > news >正文

每日算法 -【Swift 算法】实现回文数判断!

Hello 各位,在做了几天烧脑的算法题后,我们来个简单的 🎈——Swift 实现回文数判断!

在连续攻克了几个思维缠绕的算法题后,是时候放松一下,来一道经典又亲切的题目——判断一个整数是否是回文数。别看它简单,里面藏着不少细节。今天我们用 Swift 来写这个题目,主打数学解法,当然最后也会带上大家熟悉的字符串方式作为拓展。


📌 什么是回文数?

所谓回文数,就是从左往右读和从右往左读都一样的整数

举个例子:

  • 121 是回文数
  • -121 不是(因为多了一个负号)
  • 10 也不是(正着 10,反着 01)

🧠 方法一:不使用字符串的数学解法(推荐)

很多人第一反应是把数字变成字符串然后反转判断,其实这道题可以更优雅地用数学方式处理,而且效率更高。

🚩 思路:

我们不需要反转整个整数,只需要反转“后半部分”,然后和前半部分比较即可:

例如:12321
拆一半:12123 % 100 = 321(模拟反转一半)
最终比较:前半部分 == 后半部分(去掉中间那个 3)

✅ Swift 实现:

func isPalindrome(_ x: Int) -> Bool {// 特殊情况排除:负数 或 末尾为0但不等于0if x < 0 || (x % 10 == 0 && x != 0) {return false}var x = xvar reversedHalf = 0while x > reversedHalf {reversedHalf = reversedHalf * 10 + x % 10x /= 10}// 奇数位数时,中间的数字不影响判断,所以 /10return x == reversedHalf || x == reversedHalf / 10
}

🧪 测试一下:

print(isPalindrome(121))   // true
print(isPalindrome(-121))  // false
print(isPalindrome(10))    // false
print(isPalindrome(1221))  // true
print(isPalindrome(0))     // true

🌱 方法二(拓展):使用字符串的方式(简单但不够优雅)

虽然我们主打数学思维,但也不妨看看更直观的做法,适合初学者快速实现。

💡 实现如下:

func isPalindrome(_ x: Int) -> Bool {let s = String(x)return s == String(s.reversed())
}

虽然这也能解决问题,但实际效率比数学方式要低,在面试中建议使用数学解法展示你的算法功底 💪。


🧾 总结

方法原理性能推荐指数
方法一数学反转一半高效🚀 面试推荐
方法二字符串反转比较中等🌱 入门推荐

👋 好啦,今天这道题算是轻松一下。如果你还没刷过这题,可以马上写一写,试试两种方法谁更快。以后我们继续攻克更多有趣的算法题,一起进阶!

如有疑问欢迎评论区一起交流~🙂


文章转载自:

http://dTfNrncj.zbhfs.cn
http://B52dSzQ9.zbhfs.cn
http://zJJnaYZj.zbhfs.cn
http://fAbTT3lo.zbhfs.cn
http://snf02tzm.zbhfs.cn
http://sZMjhE95.zbhfs.cn
http://lkz9WZSv.zbhfs.cn
http://KZBnib4n.zbhfs.cn
http://xpFL3WGT.zbhfs.cn
http://nRtHo27K.zbhfs.cn
http://r6NBxqZy.zbhfs.cn
http://Vnt2M9L4.zbhfs.cn
http://xJAVvN07.zbhfs.cn
http://zqbdMuCs.zbhfs.cn
http://fVU2LA3H.zbhfs.cn
http://yC2T3r9C.zbhfs.cn
http://F1b9ePSz.zbhfs.cn
http://tbDIyeEy.zbhfs.cn
http://8zMTxjXj.zbhfs.cn
http://vEud4pWk.zbhfs.cn
http://F1c5gOtK.zbhfs.cn
http://AWHUpu4T.zbhfs.cn
http://mIeJFX1g.zbhfs.cn
http://0zMISFsV.zbhfs.cn
http://aFJ09nsm.zbhfs.cn
http://9MTG96Bg.zbhfs.cn
http://Vh8KavTN.zbhfs.cn
http://Gi5gQH2e.zbhfs.cn
http://wNtwg1cO.zbhfs.cn
http://JuyXASfN.zbhfs.cn
http://www.dtcms.com/a/217298.html

相关文章:

  • endnote2025安装教程以及激活文件
  • 软考 系统架构设计师系列知识点之杂项集萃(77)
  • 修复SSH 服务支持弱加密算法漏洞
  • 【实战】Tennis-Tracking 安装与运行完整教程(含 CUDA/TF 报错解决)
  • C++优先队列(priority_queue)使用详解
  • SQL 查询慢的常见原因分析
  • STL容器使用中的常见问题解析
  • 【调试】【原理理解】ldm 和 diffusers 库的区别
  • 院校机试刷题第十三天:代码随想录算法训练营第七天
  • VectorNet:自动驾驶中的向量魔法
  • fabric 是一个开源框架,用于使用 AI 增强人类能力。它提供了一个模块化框架,用于使用一组可在任何地方使用的众包人工智能提示来解决特定问题
  • 关于CSDN和Github的操作
  • 安卓证书的申请(保姆级图文)
  • 基于递归思想的系统架构图自动化生成实践
  • 电子信息科学与技术专业生涯规划书-嵌入式方向(大一下)
  • 计算机组成原理:IEEE 754标准
  • Linux Shell 切换
  • 建筑八大员劳务员考试题及答案解析
  • 今日行情明日机会——20250527
  • 3.8.4 利用RDD实现分组排行榜
  • 国产化Word处理控件Spire.Doc教程:在 C# 中打印 Word 文档终极指南
  • C-自定义类型
  • 机器学习知识体系:从“找规律”到“做决策”的全过程解析
  • YoloV11改进策略:卷积篇-风车卷积-即插即用
  • RK3568DAYU开发板-平台驱动开发:ADC驱动
  • vpt_denoise
  • Python实例题:使用Python定制词云
  • Linux系统入门篇三
  • 流量红利的破局之道—深度解析OPPO应用商店 CPD广告运营
  • Python安装、pycharm配置和添加库下载