Repository navigation
Expand file tree
/
Copy pathGeneratMissingNumbers.java
More file actions
48 lines (35 loc) · 1.59 KB
/
Copy pathGeneratMissingNumbers.java
File metadata and controls
48 lines (35 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com.abn.dsalgos.problems;
import java.util.ArrayList;
import java.util.List;
/*
Given string array of string in the below format, generate all the missing numbers between 2 numbers in the string atray
{"foo_1", "foo_5"} -> foo_2, foo_3
*/
public class GeneratMissingNumbers {
public List<String> generate(String[] input) {
String[] inputSplit = input[0].split("_");
String baseString = inputSplit[0];
Integer startNum = Integer.parseInt(inputSplit[1]);
int lastNum = startNum;
List<String> missingNumbers = new ArrayList<>();
for(int i = 1; i < input.length; i++) {
String lastString = input[i];
int actualNum = Integer.parseInt(lastString.split("_")[1]);
while(Math.abs(lastNum - actualNum) != 0) {
int expectedNum = lastNum + 1;
if(expectedNum != actualNum) {
missingNumbers.add(baseString + "_" + expectedNum);
}
lastNum = expectedNum;
}
}
return missingNumbers;
}
public static void main(String[] args) {
GeneratMissingNumbers generatMissingNumbers = new GeneratMissingNumbers();
System.out.println(generatMissingNumbers.generate(new String[] {"foo_21", "foo_25"}));
System.out.println(generatMissingNumbers.generate(new String[] {"foo_21", "foo_32"}));
System.out.println(generatMissingNumbers.generate(new String[] {"foo_1", "foo_2", "foo_4", "foo_9", "foo_10"}));
System.out.println(generatMissingNumbers.generate(new String[] {"foo_1"}));
}
}