-2
T9 트라이 발생기를 구현하면 큰 결함이 있습니다. 트리에 추가하는 것보다 트리에 추가 된 이전 단어를 덮어 쓰는 것입니다.Ruby에서 T9 Trie를 수정하여 새 단어 추가
t = Trie.new
t.build('buy')
t.build('build')
t.build('builder')
t.build('act')
t.build('acu')
puts t.inspect
출력이 : 난 그냥 ... 난처한 상황에 빠진, 그것을
class Trie
def initialize
@root = Hash.new
end
# do a for loop here
def build(word)
node = @root
t9num = word.tr('a-z', '22233344455566677778889999')
t9num.each_char do |ch|
node[ch] ||= Hash.new
node = node[ch]
end
node[:end] = "#{word}"
end
def find(str)
node = @root
str.each_char do |ch|
return nil unless node = node[ch]
end
node[:end] && true
end
end
이 명령을 놀라게하고 있지 않다
#<Trie:0x0000010103ea60 @root={"2"=>{"8"=>{"9"=>{:end=>"buy"}, "4"=>{"5"=>{"3"=>{:end=>"build", "3"=>{"7"=>{:end=>"builder"}}}}}}, "2"=>{"8"=>{:end=>"acu"}}}}>
샘플 입력 해시와 출력 간의 관계를 설명 할 수 있습니까? 샘플 출력이 샘플 입력과 실제로 연결되는지 또는 단지 다른 예제인지는 알 수 없습니다. –
안녕 저스틴 - 샘플 출력은 숫자 426의 입력과 함께 갈 것입니다. 원하는 출력은 숫자와 해시에서 나타내는 단어 목록을 모두 포함합니다. 트라이에 해시를 공급할 수 있는지 여부는 알 수 없습니다. – tremstat