Виктор обнови решението на 24.10.2011 16:58 (преди около 13 години)
+class Array
+
+ def to_hash
+ hashed = {}
+ self.each { |n,m| hashed[n] = m }
+ hashed
+ end
+
+ def subarray_count(subarray)
+ counter = 0
+ (0..self.length-subarray.length+1).to_a.each do |n|
+ counter = counter + 1 if self[n..n+subarray.length-1] == subarray
+ end
+ counter
+ end
+
+ def occurences_count
+ counter = Hash.new(0)
+ self.each { |n| counter[n] = counter.fetch(n, nil) ? counter.fetch(n) + 1 : 1}
+ counter
+ end
+
+ def index_by
+ indexed = {}
+ self.each do |n|
+ indexed[yield n] = n
+ end
+ indexed
+ end
+
+end