Skip to content

Commit 306b58b

Browse files
committed
🟢 Solve problem 26
1 parent a745158 commit 306b58b

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

‎swift/26.swift‎

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
func removeDuplicates(_ nums: inout [Int]) -> Int {
2+
if nums.count == 0 {
3+
return 0
4+
}
5+
var i = 0
6+
for j in 1..<nums.count {
7+
if nums[j] != nums[i] {
8+
i += 1
9+
nums[i] = nums[j]
10+
}
11+
}
12+
return i + 1
13+
}
14+
15+
var nums = [1,1,2]
16+
print(removeDuplicates(&nums))
17+
18+
func testRemoveDuplicates() {
19+
var tests =
20+
[
21+
[1, 1, 2],
22+
[0, 0, 1, 1, 1, 2, 2, 3, 3, 4],
23+
]
24+
let expectedValues = [2, 5]
25+
var actualValues = [Int]()
26+
27+
for i in 0..<tests.count {
28+
actualValues.append(removeDuplicates(&tests[i]))
29+
}
30+
31+
assertTrueInt(expectedValues, actualValues)
32+
}
33+
34+
func assertTrueInt(_ expectedValues: [Int], _ actualValues: [Int]) {
35+
for i in 0..<expectedValues.count {
36+
let expected = expectedValues[i]
37+
let actual = actualValues[i]
38+
39+
if expected == actual {
40+
print("Test case \(i) passed")
41+
} else {
42+
print("Test case \(i) failed")
43+
}
44+
}
45+
}
46+
47+
testRemoveDuplicates()

0 commit comments

Comments
 (0)