用Swift实现验证回文字符串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串

字母和数字都属于字母数字字符。

给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回false

我们可以看到,题目只关注字母,所以我们要过滤掉标点符号,空格等其他元素。swift中有一个过滤器filter()我们可以利用filter来过滤掉不需要的东西,返回需要的元素。因此

Swift 复制代码
var ss = s.filter {$0.isLetter || $0.isNumber}.lowercased()

$0代表s中的每个元素,isLetter判断是否为字母,isNumber判断是否为数字,我们将字母和数字的都返回。最后lowercased是将所有的字母转化为小写字母。所以返回的就是一个过滤的只剩下字母和数字的字符串了。

最后我们将原字符串与反转后的字符串比较就可以了,反转字符串可以通过reveresed函数,如下所示

Swift 复制代码
return ss == String(ss.reversed())
相关推荐
东坡肘子4 小时前
Macbook Neo:苹果重回校园的起点 -- 肘子的 Swift 周报 #126
人工智能·swiftui·swift
TT_Close5 天前
【Flutter×鸿蒙】FVM 不认鸿蒙 SDK?4步手动塞进去
flutter·swift·harmonyos
张江5 天前
Swift Concurrency学习
swift
东坡肘子7 天前
OpenClaw 不错,但我好像没有那么需要 -- 肘子的 Swift 周报 #125
人工智能·swiftui·swift
Swift社区12 天前
LeetCode 391 完美矩形 - Swift 题解
算法·leetcode·swift
升讯威在线客服系统13 天前
从 GC 抖动到稳定低延迟:在升讯威客服系统中实践 Span 与 Memory 的高性能优化
java·javascript·python·算法·性能优化·php·swift
Swift社区13 天前
LeetCode 390 消除游戏 - Swift 题解
leetcode·游戏·swift
东坡肘子14 天前
春晚、机器人、AI 与 LLM -- 肘子的 Swift 周报 #124
人工智能·swiftui·swift
BatmanWayne17 天前
swift-微调补充
人工智能·swift
疯笔码良21 天前
【swiftUI】实现自定义的底部TabBar组件
ios·swiftui·swift