Given
a dictionary full of words
{in, july, den, dentist, best, ...}
with some C++ API to access it:boolean findWord(string word)
, orstring getNextWord(void)
to iterate through it,some input string with no space, e.g.:
bestdentistinjuly
...
Output
best dentist in july is...
(basically separate the non-space string by space given a dictionary)
What will be the best algorithm to solve it?
A subtle but important question is, is there any fancy way to solve the unreachable dead-end problem. E.g., den
and dentist
are both valid words to dissect the rest of the string, one of them may just be a dead-end.
To me it seems like a greedy problem or something solvable by dynamic programming..