用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())
相关推荐
非专业程序员Ping2 小时前
从0到1自定义文字排版引擎:原理篇
ios·swift·assembly·font
HarderCoder18 小时前
【Swift 筑基记】把“结构体”与“类”掰开揉碎——从值类型与引用类型说起
swift
HarderCoder18 小时前
Swift 字符串与字符完全导读(三):比较、正则、性能与跨平台实战
swift
HarderCoder18 小时前
Swift 字符串与字符完全导读(一):从字面量到 Unicode 的实战之旅
swift
HarderCoder18 小时前
Swift 字符串与字符完全导读(二):Unicode 视图、索引系统与内存陷阱
swift
非专业程序员Ping1 天前
一文读懂字体文件
ios·swift·assembly·font
wahkim1 天前
移动端开发工具集锦
flutter·ios·android studio·swift
非专业程序员Ping2 天前
一文读懂字符、字形、字体
ios·swift·font
东坡肘子2 天前
去 Apple Store 修手机 | 肘子的 Swift 周报 #0107
swiftui·swift·apple
非专业程序员3 天前
iOS/Swift:深入理解iOS CoreText API
ios·swift