用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())
相关推荐
崽崽长肉肉1 天前
Swift中Package Manager的使用
swift
1024小神1 天前
使用AVFoundation实现二维码识别的角点坐标和区域
开发语言·数码相机·ios·swift
0xAaron2 天前
如何使用dSYM文件来符号化崩溃信息
ios·swift·调试·崩溃·符号化·dsym
Swift社区2 天前
在 Swift 中使用 Image Playground 生成 AI 图像:完整实战指南
开发语言·人工智能·swift
0xAaron2 天前
ips 文件符号化
ios·swift·调试·ips·符号化
HarderCoder2 天前
脱离 SwiftUI 也能用 @Observable:深入理解 withObservationTracking 的玩法、坑点与 Swift 6 突围
swift
1024小神2 天前
swift中try \ try? \ try! 区别
开发语言·ios·swift
kk哥88993 天前
Swift底层原理学习笔记
笔记·学习·swift
confiself3 天前
通义灵码分析ms-swift框架中CHORD算法实现
开发语言·算法·swift
1024小神3 天前
在 Swift 中,self. 的使用遵循明确的规则
开发语言·ios·swift