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 {
206
206
}
207
207
```
208
208
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
+
209
238
<!-- tabs: end -->
210
239
211
240
<!-- 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