Румен обнови решението на 22.10.2011 23:05 (преди около 13 години)
+class Array
+ def to_hash
+ hash = {}
+ self.each { |item| hash[item[0]] = item[1] }
+ hash
+ end
+
+ def index_by
+ hash = {}
+ self.each { |item| hash[yield item] = item }
+ hash
+ end
+
+ def subarray_count(subarray = [])
+ count = 0
+ i = 0
+ while i < self.length - subarray.length + 1 do
+ count += 1 if self[ i..(subarray.length - 1 + i) ] == subarray
+ i += 1
+ end
+ count
+ end
+
+ def occurences_count
+ hash = Hash.new(0)
+ cnt = 0;
+ while self.length != 0
+ self.each { |item| cnt +=1 if self.first == item }
+ hash[first] = cnt;
+ delete(self.first)
+ cnt = 0
+ end
+ hash
+ end
+end