Skip to content

Commit 65129d8

Browse files
distressedrookAvismara Hugoppaluyanglbme
authored
feat: add Swift solutions to Add Two Numbers and Longest Substring Without Repeating Character problems (doocs#475)
Co-authored-by: Avismara Hugoppalu <avismara@campus.build> Co-authored-by: Yang Libin <contact@yanglibin.info>
1 parent 7a35747 commit 65129d8

File tree

7 files changed

+162
-0
lines changed

7 files changed

+162
-0
lines changed

solution/0000-0099/0001.Two Sum/README_EN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ class Solution {
116116
}
117117
}
118118
```
119+
119120
### **...**
120121

121122
```

solution/0000-0099/0002.Add Two Numbers/README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,39 @@ def add_two_numbers(l1, l2)
271271
end
272272
```
273273

274+
### **Swift**
275+
276+
```swift
277+
/**
278+
* Definition for singly-linked list.
279+
* public class ListNode {
280+
* public var val: Int
281+
* public var next: ListNode?
282+
* public init() { self.val = 0; self.next = nil; }
283+
* public init(_ val: Int) { self.val = val; self.next = nil; }
284+
* public init(_ val: Int, _ next: ListNode?) { self.val = val; self.next = next; }
285+
* }
286+
*/
287+
class Solution {
288+
func addTwoNumbers(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
289+
var dummy = ListNode.init()
290+
var carry = 0
291+
var l1 = l1
292+
var l2 = l2
293+
var cur = dummy
294+
while l1 != nil || l2 != nil || carry != 0 {
295+
let s = (l1?.val ?? 0) + (l2?.val ?? 0) + carry
296+
carry = s / 10
297+
cur.next = ListNode.init(s % 10)
298+
cur = cur.next!
299+
l1 = l1?.next
300+
l2 = l2?.next
301+
}
302+
return dummy.next
303+
}
304+
}
305+
```
306+
274307
### **...**
275308

276309
```

solution/0000-0099/0002.Add Two Numbers/README_EN.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,39 @@ def add_two_numbers(l1, l2)
259259
end
260260
```
261261

262+
### **Swift**
263+
264+
```swift
265+
/**
266+
* Definition for singly-linked list.
267+
* public class ListNode {
268+
* public var val: Int
269+
* public var next: ListNode?
270+
* public init() { self.val = 0; self.next = nil; }
271+
* public init(_ val: Int) { self.val = val; self.next = nil; }
272+
* public init(_ val: Int, _ next: ListNode?) { self.val = val; self.next = next; }
273+
* }
274+
*/
275+
class Solution {
276+
func addTwoNumbers(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
277+
var dummy = ListNode.init()
278+
var carry = 0
279+
var l1 = l1
280+
var l2 = l2
281+
var cur = dummy
282+
while l1 != nil || l2 != nil || carry != 0 {
283+
let s = (l1?.val ?? 0) + (l2?.val ?? 0) + carry
284+
carry = s / 10
285+
cur.next = ListNode.init(s % 10)
286+
cur = cur.next!
287+
l1 = l1?.next
288+
l2 = l2?.next
289+
}
290+
return dummy.next
291+
}
292+
}
293+
```
294+
262295
### **...**
263296

264297
```
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* public class ListNode {
4+
* public var val: Int
5+
* public var next: ListNode?
6+
* public init() { self.val = 0; self.next = nil; }
7+
* public init(_ val: Int) { self.val = val; self.next = nil; }
8+
* public init(_ val: Int, _ next: ListNode?) { self.val = val; self.next = next; }
9+
* }
10+
*/
11+
class Solution {
12+
func addTwoNumbers(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
13+
var dummy = ListNode.init()
14+
var carry = 0
15+
var l1 = l1
16+
var l2 = l2
17+
var cur = dummy
18+
while l1 != nil || l2 != nil || carry != 0 {
19+
let s = (l1?.val ?? 0) + (l2?.val ?? 0) + carry
20+
carry = s / 10
21+
cur.next = ListNode.init(s % 10)
22+
cur = cur.next!
23+
l1 = l1?.next
24+
l2 = l2?.next
25+
}
26+
return dummy.next
27+
}
28+
}

solution/0000-0099/0003.Longest Substring Without Repeating Characters/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,30 @@ class Solution {
106106
}
107107
```
108108

109+
### **Swift**
110+
111+
```swift
112+
class Solution {
113+
func lengthOfLongestSubstring(_ s: String) -> Int {
114+
var map = [Character: Int]()
115+
var currentStartingIndex = 0
116+
var i = 0
117+
var maxLength = 0
118+
for char in s {
119+
if map[char] != nil {
120+
if map[char]! >= currentStartingIndex {
121+
maxLength = max(maxLength, i - currentStartingIndex)
122+
currentStartingIndex = map[char]! + 1
123+
}
124+
}
125+
map[char] = i
126+
i += 1
127+
}
128+
return max(maxLength, i - currentStartingIndex)
129+
}
130+
}
131+
```
132+
109133
### **...**
110134

111135
```

solution/0000-0099/0003.Longest Substring Without Repeating Characters/README_EN.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,30 @@ class Solution {
8888
}
8989
```
9090

91+
### **Swift**
92+
93+
```swift
94+
class Solution {
95+
func lengthOfLongestSubstring(_ s: String) -> Int {
96+
var map = [Character: Int]()
97+
var currentStartingIndex = 0
98+
var i = 0
99+
var maxLength = 0
100+
for char in s {
101+
if map[char] != nil {
102+
if map[char]! >= currentStartingIndex {
103+
maxLength = max(maxLength, i - currentStartingIndex)
104+
currentStartingIndex = map[char]! + 1
105+
}
106+
}
107+
map[char] = i
108+
i += 1
109+
}
110+
return max(maxLength, i - currentStartingIndex)
111+
}
112+
}
113+
```
114+
91115
### **...**
92116

93117
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution {
2+
func lengthOfLongestSubstring(_ s: String) -> Int {
3+
var map = [Character: Int]()
4+
var currentStartingIndex = 0
5+
var i = 0
6+
var maxLength = 0
7+
for char in s {
8+
if map[char] != nil {
9+
if map[char]! >= currentStartingIndex {
10+
maxLength = max(maxLength, i - currentStartingIndex)
11+
currentStartingIndex = map[char]! + 1
12+
}
13+
}
14+
map[char] = i
15+
i += 1
16+
}
17+
return max(maxLength, i - currentStartingIndex)
18+
}
19+
}

0 commit comments

Comments
 (0)