Это вопрос интервью. Предположим, что у вас есть строка text и dictionary (набор строк). Как вы разбиваете text на подстроки, чтобы каждая подстрока находилась в dictionary.
Например, вы можете разбить "thisisatext" на ["this", "is", "a", "text"] с помощью /usr/share/dict/words.
Я считаю, что откат может решить эту проблему (в псевдо-Java):
void solve(String s, Set<String> dict, List<String> solution) {
if (s.length == 0)
return
for each prefix of s found in dict
solve(s without prefix, dict, solution + prefix)
}
List<String> solution = new List<String>()
solve(text, dict, solution)
Имеет ли смысл? Вы бы оптимизировали шаг поиска префиксов в словаре? Какие структуры данных вы бы порекомендовали?