From: Andrew Johnson Date: 2004-12-20T06:32:07+09:00 Subject: Re: [QUIZ][SOLUTION] Scrabble Stems (#12) Here's mine ... doesn't seem to fair too badly. Using the YAWL list (264,061 words), it finds 25 bingo-stems that combine with n >= 20 letters. (about 16 seconds on a 666MHz). regards, andrew #!/usr/bin/ruby -w n = ARGV[0].to_i wfile = ARGV[1] w7sigs = {} w6sigs = {} File.open(wfile,'r') do |f| f.each do |line| next unless line.size == 8 line.chomp! line.downcase! sig = line.unpack('aaaaaaa').sort.join("") next if w7sigs[sig] w7sigs[sig] = 1 end end w7sigs.each_key do |k| 7.times do |i| ns = k.dup ll = ns.slice!(i,1) w6sigs[ns] ||= [] w6sigs[ns] << ll end end w6sigs.each {|k,v| w6sigs[k].uniq!} w6sigs.reject!{|k,v|v.size < n} w6sigs.sort_by{|a|a[1].size}.reverse.each do |it| puts "#{it[0]} #{it[1].size}" end __END__