Skip to content

Commit 2e351b8

Browse files
authored
feat: add swift implementation to lcof2 problem: No.019 (#3007)
1 parent 0624294 commit 2e351b8

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

lcof2/剑指 Offer II 019. 最多删除一个字符得到回文/README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,42 @@ var validPalindrome = function (s) {
204204
};
205205
```
206206

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+
207243
<!-- tabs:end -->
208244

209245
<!-- solution:end -->
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
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+
}

0 commit comments

Comments
 (0)