Skip to content

Instantly share code, notes, and snippets.

@RangerDane
Last active July 25, 2016 22:34
Show Gist options
  • Save RangerDane/fe3a7232fba551e477c9de530c043b0b to your computer and use it in GitHub Desktop.
Save RangerDane/fe3a7232fba551e477c9de530c043b0b to your computer and use it in GitHub Desktop.
class PrefixTree
attr_reader :longest
def initialize
@tree = {}
@longest = 0
end
def insert( str )
node = @tree
cur_chain = 0
str.each_char do |char|
node[char] ? cur_chain += 1 : node[char] = {}
node = node[char]
end
@longest = cur_chain if cur_chain > @longest
end
end
f = File.open("common_prefix.txt", "r")
f.gets.to_i.times do
tree = PrefixTree.new
f.gets.to_i.times do
tree.insert( f.gets.chomp )
end
puts tree.longest
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment