Skip to content

Commit fc94e81

Browse files
committed
Remove duplicate solution of JoinIntervals task
1 parent 7953876 commit fc94e81

File tree

2 files changed

+12
-75
lines changed

2 files changed

+12
-75
lines changed

src/main/java/by/andd3dfx/common/JoinIntervals.java

Lines changed: 3 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,12 @@
1616
*/
1717
public class JoinIntervals {
1818

19-
/**
20-
* Home version
21-
*/
2219
public static String transform(int[] a) {
23-
List<String> items = new ArrayList<>();
2420
if (a.length == 0) {
2521
return "";
2622
}
2723

24+
List<String> items = new ArrayList<>();
2825
int lastItem = a[0];
2926
int startIntervalValue = a[0];
3027
boolean intervalDetected = false;
@@ -55,41 +52,7 @@ public static String transform(int[] a) {
5552
items.add(String.valueOf(lastItem));
5653
}
5754

58-
return items.stream().collect(Collectors.joining(","));
59-
}
60-
61-
/**
62-
* Interview version
63-
*/
64-
public static String transform2(int[] nums) {
65-
var result = new ArrayList<String>();
66-
var len = nums.length;
67-
int leftBorderIndex = 0;
68-
boolean intervalDetected = false;
69-
70-
int i = 0;
71-
for (; i < len - 1; i++) {
72-
if (nums[i + 1] - nums[i] == 1) {
73-
if (!intervalDetected) {
74-
leftBorderIndex = i;
75-
intervalDetected = true;
76-
}
77-
} else {
78-
if (intervalDetected) {
79-
result.add(nums[leftBorderIndex] + "-" + nums[i]);
80-
intervalDetected = false;
81-
} else {
82-
result.add(String.valueOf(nums[i]));
83-
}
84-
}
85-
}
86-
87-
if (intervalDetected) {
88-
result.add(nums[leftBorderIndex] + "-" + nums[i]);
89-
} else {
90-
result.add(String.valueOf(nums[i]));
91-
}
92-
93-
return result.stream().collect(Collectors.joining(","));
55+
return items.stream()
56+
.collect(Collectors.joining(","));
9457
}
9558
}

src/test/java/by/andd3dfx/common/JoinIntervalsTest.java

Lines changed: 9 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,58 +2,32 @@
22

33
import org.junit.Test;
44

5+
import static by.andd3dfx.common.JoinIntervals.transform;
56
import static org.assertj.core.api.Assertions.assertThat;
67

78
public class JoinIntervalsTest {
89

910
@Test
10-
public void transform() {
11-
assertThat(JoinIntervals.transform(new int[]{}))
11+
public void testTransform() {
12+
assertThat(transform(new int[]{}))
1213
.isEqualTo("");
1314

14-
assertThat(JoinIntervals.transform(new int[]{1}))
15+
assertThat(transform(new int[]{1}))
1516
.isEqualTo("1");
1617

17-
assertThat(JoinIntervals.transform(new int[]{1, 2}))
18+
assertThat(transform(new int[]{1, 2}))
1819
.isEqualTo("1-2");
1920

20-
assertThat(JoinIntervals.transform(new int[]{1, 3}))
21+
assertThat(transform(new int[]{1, 3}))
2122
.isEqualTo("1,3");
2223

23-
assertThat(JoinIntervals.transform(new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}))
24+
assertThat(transform(new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}))
2425
.isEqualTo("1-10");
2526

26-
assertThat(JoinIntervals.transform(new int[]{2, 3, 5, 6, 7, 8, 11, 20, 21, 22}))
27+
assertThat(transform(new int[]{2, 3, 5, 6, 7, 8, 11, 20, 21, 22}))
2728
.isEqualTo("2-3,5-8,11,20-22");
2829

29-
assertThat(JoinIntervals.transform(new int[]{1, 3, 5, 7, 9, 11, 20, 22}))
30-
.isEqualTo("1,3,5,7,9,11,20,22");
31-
}
32-
33-
@Test
34-
public void transform2() {
35-
/*
36-
* Not covered this case on interview
37-
assertThat(NumberIntervals.transform2(new int[]{}))
38-
.isEqualTo("");
39-
*/
40-
41-
assertThat(JoinIntervals.transform2(new int[]{1}))
42-
.isEqualTo("1");
43-
44-
assertThat(JoinIntervals.transform2(new int[]{1, 2}))
45-
.isEqualTo("1-2");
46-
47-
assertThat(JoinIntervals.transform2(new int[]{1, 3}))
48-
.isEqualTo("1,3");
49-
50-
assertThat(JoinIntervals.transform2(new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}))
51-
.isEqualTo("1-10");
52-
53-
assertThat(JoinIntervals.transform2(new int[]{2, 3, 5, 6, 7, 8, 11, 20, 21, 22}))
54-
.isEqualTo("2-3,5-8,11,20-22");
55-
56-
assertThat(JoinIntervals.transform2(new int[]{1, 3, 5, 7, 9, 11, 20, 22}))
30+
assertThat(transform(new int[]{1, 3, 5, 7, 9, 11, 20, 22}))
5731
.isEqualTo("1,3,5,7,9,11,20,22");
5832
}
5933
}

0 commit comments

Comments
 (0)