hash = {
"d" => {
"o" => {
"g" => {
"s" => {}
},
"l" => {
"l" => {}
},
"o" => {
"m" => {}
}
}
},
"b" => {
"o"=>{
"o"=>{
"m"=>{}
}
}
}
}
trie.print(hash)
内特里类有方法称为print
打印trie
取钥匙:如何内哈希对象
def print(trie)
trie.each do |k,v|
@res.concat(k)
print(trie[k]) if trie[k].length > 0
unless trie[k].length > 0
@result << @res unless trie[k].length > 0
@res = ""
p @result
end
end
end
上述方法打印:
["dogs", "ll", "om", "boom"]
但我要打印:
["dogs" , "doll", "doom" , "boom"]
谢谢,它按照通缉的方式工作。做了小改动。 res = compose(v,前缀+ k) @ result << res除非trie [k] .length!= 0 – 2014-12-07 14:26:54
@HariKrishnan不是这个函数已经用'empty?'来做这个了吗 – 2014-12-07 14:34:08
不,空字符串也包含在结果。 @ D方,然后我做了这个以避免空。 – 2014-12-07 14:56:32