У меня есть хэш хешей. Этот хэш имеет словарь. Мне нужно найти в нем все совпадения с одинаковым корнем. Например, у меня есть:ruby iterate through hash
#<Trie:0x00000001bf9a40 @root={
"m"=>{"a"=>{"x"=>{
:end=>true,
"i"=>{"m"=>{
:end=>true,
"i"=>{"m"=>{"l"=>{"i"=>{"a"=>{"n"=>{:end=>true}}}}}}
}},
"w"=>{"e"=>{"l"=>{"l"=>{:end=>true}}}}
}}}
}>
и слова "max"
, "maxim"
, "maximilian"
, "maxwell"
. Как получить все слова в этом хэше у корня? Например,
t = Trie.new
t.add(.....# now we added words
t.find('max')
#result all words which begins from 'max'
t.find('maxim')
#result all words which begins from 'maxim' => maxim, maximilian
спасибо за форматирование – r90t
Не получил время для полного ответа, но вот ключ к решению вопроса о том, что осталось после нахождения префикса: 'остаток = @root [" m "] [" a "] [" x "]'. Ваш метод поиска должен будет найти это программно, конечно. , , это упражнение в рекурсивных методах - вам понадобятся два, один для поиска, другой - для продолжения оставшегося –
, который у меня есть. Я могу найти строку, которая мне нужна. Во втором рекурсивном методе есть проблема, чтобы найти другие совпадения. – r90t