Implement a SubstringGenerator (class) that generates all substrings of a string
ID: 3691939 • Letter: I
Question
Implement a SubstringGenerator (class) that generates all substrings of a string recursively. For example, the substrings of the string “rum” are the seven strings “rum”, “ru”, “r”, “um”, “u”, “m”, “” Hint: First enumerate all substrings that start with the first character. There are n of them if the string has length n. Then enumerate the substrings of the string that you obtain by removing the first character. Here is what your output should look like after your project is completed. (The order of your substrings is not important, as long as your generator produces all substrings correctly).
Substrings of "ab"
Actual: '' 'b' 'a' 'ab'
Expected: '' 'b' 'a' 'ab'
Substrings of "abc"
Actual: '' 'c' 'b' 'bc' 'a' 'ab' 'abc'
Expected: '' 'c' 'b' 'bc' 'a' 'ab' 'abc'
Substrings of "abc123"
Actual: '' '3' '2' '23' '1' '12' '123' 'c' 'c1' 'c12' 'c123' 'b' 'bc' 'bc1' 'bc12' 'bc123' 'a' 'ab' 'abc' 'abc1' 'abc12' 'abc123'
Expected: '' '3' '2' '23' '1' '12' '123' 'c' 'c1' 'c12' 'c123' 'b' 'bc' 'bc1' 'bc12' 'bc123' 'a' 'ab' 'abc' 'abc1' 'abc12' 'abc123'
Explanation / Answer
public class HangmanDriver {
static void substrings(String in, int start, int end){
if(start == in.length() && end == in.length()){
return;
}else{
if(end == in.length()+1){
substrings(in, start+1, start+1);
}else{
System.out.println(in.substring(start, end));
substrings(in, start, end+1);
}
}
}
public static void main(String[] args) throws Exception {
substrings("1234", 0,1);
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.