Skip to content

Commit f6d8076

Browse files
committed
测试
1 parent f460daf commit f6d8076

File tree

2 files changed

+50
-16
lines changed

2 files changed

+50
-16
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.github.masx200.leetcode_test.zigzag_iterator
2+
3+
4+
import org.junit.jupiter.api.Test
5+
import kotlin.test.assertContentEquals
6+
import kotlin.test.junit5.JUnit5Asserter.assertEquals
7+
8+
class ZigzagIteratorTest {
9+
10+
11+
@Test
12+
fun nextTest() {
13+
14+
val v1 = listOf<Int>(1, 2);
15+
val v2 = listOf<Int>(3, 4, 5, 6);
16+
val OUTPUT = listOf<Int>(1, 3, 2, 4, 5, 6);
17+
18+
19+
val zzit = ZigzagIterator(v1, v2);
20+
21+
val res: MutableList<Int> = mutableListOf<Int>();
22+
23+
while (zzit.hasNext()) {
24+
res.add(zzit.next());
25+
}
26+
assertContentEquals(res, OUTPUT);
27+
}
28+
29+
@Test
30+
fun hasNextTest() {
31+
}
32+
}

zigzag-iterator/ZigzagIterator.kt

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,7 @@
1-
package com.github.masx200.leetcode_test.com.github.leetcode_test.zigzag_iterator
1+
package com.github.masx200.leetcode_test.zigzag_iterator
22

33

4-
private fun ZigzagGenerator(v1: List<Int>, v2: List<Int>): Sequence<Int> = sequence<Int> {
5-
if (v1.size < v2.size) {
6-
for (i in 0 until v1.size) {
7-
yield(v1[i])
8-
9-
yield(v2[i])
10-
}
11-
for (i in v1.size until v2.size) {
12-
yield(v2[i])
13-
14-
}
15-
} else {
16-
yieldAll(ZigzagGenerator(v2, v1))
17-
}
184

19-
}
205

216
class ZigzagIterator(v1: List<Int>, v2: List<Int>) {
227

@@ -32,4 +17,21 @@ class ZigzagIterator(v1: List<Int>, v2: List<Int>) {
3217
fun hasNext(): Boolean {
3318
return iterator.hasNext()
3419
}
20+
}
21+
22+
private fun ZigzagGenerator(v1: List<Int>, v2: List<Int>): Sequence<Int> = sequence<Int> {
23+
if (v1.size < v2.size) {
24+
for (i in 0 until v1.size) {
25+
yield(v1[i])
26+
27+
yield(v2[i])
28+
}
29+
for (i in v1.size until v2.size) {
30+
yield(v2[i])
31+
32+
}
33+
} else {
34+
yieldAll(ZigzagGenerator(v2, v1))
35+
}
36+
3537
}

0 commit comments

Comments
 (0)