Skip to content

Instantly share code, notes, and snippets.

@ciniglio
Forked from isa/gist:2571012
Created May 2, 2012 04:58
Show Gist options
  • Save ciniglio/2573862 to your computer and use it in GitHub Desktop.
Save ciniglio/2573862 to your computer and use it in GitHub Desktop.
Convert in less than 30 lines
LIST = [['A','B','C'], ['A','C','E'], ['E','F','D'],['D','A','J'],['E','D','J']]
out = Hash.new(0)
LIST.each do |row|
arr = row.sort + row.sort
3.times { out[[arr.shift,arr.shift].sort] += 1 }
end
for key in out.keys.sort do
puts "#{key.join(", ")}, #{out[key]}"
end
Question: Convert following into the latter data structure in less than 30 lines:
List:
A, B, C
A, C, E
E, F, D
D, A, J
E, D, J
List
A, B, 1 (frequency)
A, C, 2
A, D, 1
A, E, 1
A, J, 1
B, C, 1
C, E, 1
D, E, 2
D, F, 1
D, J, 2
E, F, 1
E, J, 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment