File tree Expand file tree Collapse file tree 2 files changed +53
-0
lines changed
lcof2/剑指 Offer II 018. 有效的回文 Expand file tree Collapse file tree 2 files changed +53
-0
lines changed Original file line number Diff line number Diff 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 -->
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments