用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())
相关推荐
非专业程序员43 分钟前
Rust RefCell 多线程读为什么也panic了?
rust·swift
胎粉仔1 天前
Swift 初阶 —— Sendable 协议 & data races
开发语言·ios·swift·sendable·并发域·data races
m0_495562781 天前
Swift-Enum
java·算法·swift
m0_495562781 天前
Swift-snapKit使用
开发语言·elasticsearch·swift
HarderCoder2 天前
Swift 内存管理:吃透 ARC 、weak、unowned
ios·swift
HarderCoder2 天前
【Swift 访问控制全解析】一篇就够:从 open 到 private,让接口与实现各就其位
swift
HarderCoder2 天前
Swift 6 实战:从“定时器轮询”到 AsyncSequence 的优雅实时推送
swift
Daniel_Coder3 天前
iOS Widget 开发-9:可配置 Widget:使用 IntentConfiguration 实现参数选择
ios·swiftui·swift·widget·intents
非专业程序员Ping3 天前
Vibe Coding 实战!花了两天时间,让 AI 写了一个富文本渲染引擎!
ios·ai·swift·claude·vibecoding
m0_495562783 天前
Swift的逃逸闭包
服务器·php·swift