Skip to content

Commit 0624294

Browse files
klever34yanglbme
andauthored
feat: add swift implementation to lcof2 problem: No.018 (#3006)
--------- Co-authored-by: Libin YANG <contact@yanglibin.info>
1 parent da559f6 commit 0624294

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

lcof2/剑指 Offer II 018. 有效的回文/README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,35 @@ impl Solution {
206206
}
207207
```
208208

209+
#### Swift
210+
211+
```swift
212+
class Solution {
213+
func isPalindrome(_ s: String) -> Bool {
214+
var i = s.startIndex
215+
var j = s.index(before: s.endIndex)
216+
217+
while i < j {
218+
while i < j && !s[i].isLetter && !s[i].isNumber {
219+
i = s.index(after: i)
220+
}
221+
while i < j && !s[j].isLetter && !s[j].isNumber {
222+
j = s.index(before: j)
223+
}
224+
if i >= j {
225+
break
226+
}
227+
if s[i].lowercased() != s[j].lowercased() {
228+
return false
229+
}
230+
i = s.index(after: i)
231+
j = s.index(before: j)
232+
}
233+
return true
234+
}
235+
}
236+
```
237+
209238
<!-- tabs:end -->
210239

211240
<!-- solution:end -->
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Solution {
2+
func isPalindrome(_ s: String) -> Bool {
3+
var i = s.startIndex
4+
var j = s.index(before: s.endIndex)
5+
6+
while i < j {
7+
while i < j && !s[i].isLetter && !s[i].isNumber {
8+
i = s.index(after: i)
9+
}
10+
while i < j && !s[j].isLetter && !s[j].isNumber {
11+
j = s.index(before: j)
12+
}
13+
if i >= j {
14+
break
15+
}
16+
if s[i].lowercased() != s[j].lowercased() {
17+
return false
18+
}
19+
i = s.index(after: i)
20+
j = s.index(before: j)
21+
}
22+
return true
23+
}
24+
}

0 commit comments

Comments
 (0)