Old high school files. Lessson notes/codes/projects etc.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#!/usr/bin/ruby -w
|
|
|
|
|
|
|
|
words = File.read("/usr/share/dict/words")
|
|
|
|
words.chomp!
|
|
|
|
words.downcase!
|
|
|
|
words = words.split(" ")
|
|
|
|
words = words.map do |w|
|
|
|
|
if(w.length == 5) then
|
|
|
|
w.split("")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
words.compact!
|
|
|
|
|
|
|
|
char_count = Hash.new(0)
|
|
|
|
charpos_count = Hash.new()
|
|
|
|
|
|
|
|
words.each do |word|
|
|
|
|
word.each_with_index do |w, i|
|
|
|
|
if( charpos_count[w] == nil ) then
|
|
|
|
charpos_count[w] = Hash.new(0)
|
|
|
|
end
|
|
|
|
charpos_count[w][i] += 1
|
|
|
|
char_count[w] += 1
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
most_common_pos = Hash.new
|
|
|
|
|
|
|
|
def calc_stuff(charpos_count, most_common_pos)
|
|
|
|
charpos_count.each do |char, pos_data|
|
|
|
|
pos_data.each do |pos, count|
|
|
|
|
if( most_common_pos[pos] == nil ) then
|
|
|
|
most_common_pos[pos] = {char: char, count: count}
|
|
|
|
next
|
|
|
|
elsif( count > most_common_pos[pos][:count] ) then
|
|
|
|
most_common_pos[pos] = {
|
|
|
|
char: char,
|
|
|
|
count: count
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
return most_common_pos
|
|
|
|
end
|
|
|
|
|
|
|
|
calc_stuff(charpos_count, most_common_pos)
|
|
|
|
|
|
|
|
if( ARGV.length >= 2 ) then
|
|
|
|
pos1 = ARGV[0].to_i
|
|
|
|
pos2 = ARGV[1].to_i
|
|
|
|
(pos1..pos2).each do |i|
|
|
|
|
print "#{most_common_pos[i][:char]}"
|
|
|
|
end
|
|
|
|
puts ""
|
|
|
|
else
|
|
|
|
p most_common_pos
|
|
|
|
p char_count
|
|
|
|
end
|