I have to 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”, “”

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter18: Stacks And Queues
Section: Chapter Questions
Problem 16PE: The implementation of a queue in an array, as given in this chapter, uses the variable count to...
icon
Related questions
Question

I have to 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, if 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'.

Recursion is really confusing to me and I'm not super sure where to start. I know I need a base case (which i assume would be something to do with the length of the string?), but I don't know where to go from here. Can you help?

 

The problem is from Big Java 6th edition Chapter 13. Excersice 13.14

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 6 images

Blurred answer
Knowledge Booster
Time complexity
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning