The same word from a dictionary can be used as many times as possible to make sentences.
The first line contains an integer value ‘N’ which denotes the size of the dictionary. Next ‘N’ line contains a non-empty string “denoting words”. Next ‘(N+1)’ th line contains a non-empty string without any space.
Print each possible sentence after adding spaces in different lines.
You do not need to print anything, it has already been taken care of. Order of sentences does not matter.
1 <= N <= 100 1 <= M <= 16 1 <= W <= 16 Where ‘N’ is the length of a dictionary , ‘W’ is the length of the “word” in a dictionary and ‘M’ is the length of a sentence. Time limit: 1 sec.
We need to keep exploring the given string from current position ‘i’ to until we wouldn’t find a position such that substring ‘i’ to ‘j’ exists in the dictionary.
The algorithm looks like: