Это вопрос : найти все (английское слово) подстроки заданной строки. (каждый = каждый, когда-либо, очень).
Очевидно, мы можем перебрать все подстроки и проверить каждый из них на английский словарь, организованный как набор. Я считаю, что словарь достаточно мал, чтобы соответствовать ОЗУ. Как организовать словарь? Что касается, как я помню, оригинальная команда spell
загрузила файл words
в bitmap
, представляла собой набор значений хеш-слов. Я бы начал с этого.
Другим решением является trie
, созданный из словаря. Используя trie, мы можем перебрать все строковые символы и проверить trie
для каждого символа. Я предполагаю, что сложность этого решения в худшем случае будет одинаковой (O(n^2)
)
Имеет ли смысл? Предлагаете ли вы другие решения?