Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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);
   }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote