File tree Expand file tree Collapse file tree 2 files changed +67
-0
lines changed
lcof2/剑指 Offer II 019. 最多删除一个字符得到回文 Expand file tree Collapse file tree 2 files changed +67
-0
lines changed Original file line number Diff line number Diff line change @@ -204,6 +204,42 @@ var validPalindrome = function (s) {
204
204
};
205
205
```
206
206
207
+ #### Swift
208
+
209
+ ``` swift
210
+ class Solution {
211
+ private var s: String = " "
212
+
213
+ func validPalindrome (_ s : String ) -> Bool {
214
+ self .s = s
215
+ var i = s.startIndex
216
+ var j = s.index (before : s.endIndex )
217
+
218
+ while i < j {
219
+ if s[i] != s[j] {
220
+ return check (s.index (after : i), j) || check (i, s.index (before : j))
221
+ }
222
+ i = s.index (after : i)
223
+ j = s.index (before : j)
224
+ }
225
+ return true
226
+ }
227
+
228
+ private func check (_ i : String .Index , _ j : String .Index ) -> Bool {
229
+ var i = i
230
+ var j = j
231
+ while i < j {
232
+ if s[i] != s[j] {
233
+ return false
234
+ }
235
+ i = s.index (after : i)
236
+ j = s.index (before : j)
237
+ }
238
+ return true
239
+ }
240
+ }
241
+ ```
242
+
207
243
<!-- tabs: end -->
208
244
209
245
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ private var s : String = " "
3
+
4
+ func validPalindrome( _ s: String ) -> Bool {
5
+ self . s = s
6
+ var i = s. startIndex
7
+ var j = s. index ( before: s. endIndex)
8
+
9
+ while i < j {
10
+ if s [ i] != s [ j] {
11
+ return check ( s. index ( after: i) , j) || check ( i, s. index ( before: j) )
12
+ }
13
+ i = s. index ( after: i)
14
+ j = s. index ( before: j)
15
+ }
16
+ return true
17
+ }
18
+
19
+ private func check( _ i: String . Index , _ j: String . Index ) -> Bool {
20
+ var i = i
21
+ var j = j
22
+ while i < j {
23
+ if s [ i] != s [ j] {
24
+ return false
25
+ }
26
+ i = s. index ( after: i)
27
+ j = s. index ( before: j)
28
+ }
29
+ return true
30
+ }
31
+ }
You can’t perform that action at this time.
0 commit comments