Емилиян обнови решението на 24.10.2011 14:29 (преди около 13 години)
+class Array
+ def to_hash
+ hash ={}
+ if self
+ self.each do |array|
+ hash[array.shift]= array.shift
+ end
+ end
+ return hash
+ end
+
+ def index_by
+ hash ={}
+ if self
+ self.each do |elem|
+ hash[yield elem]= elem
+ end
+ end
+ return hash
+ end
+
+ def subarray_count(subarray)
+ len = subarray.length - 1
+ i = 0
+ count = 0
+ while i <= (self.length - len)
+ if self[i..(len+i)] == subarray
+ count += 1
+ end
+ i += 1
+ end
+ return count
+ end
+
+ def occurences_count
+ hash = Hash.new(0)
+ if self
+ self.each do |elem|
+ hash[elem] += 1
+ end
+ end
+ return hash
+ end
+end