Деница обнови решението на 23.10.2011 14:00 (преди около 13 години)
+class Array
+ def to_hash
+ result = {}
+ self.each do |n|
+ result[n[0]] = n[1]
+ end
+ result
+ end
+
+ def index_by(&block)
+ result = {}
+ self.each do |value|
+ key = block.call(value)
+ result[key] = value
+ end
+ result
+ end
+
+ def subarray_count(subarray)
+ count = 0;
+
+ maxStartIndex = self.size - subarray.size;
+ 0.upto(maxStartIndex) do |startIndex|
+ if self[startIndex, subarray.size] == subarray
+ count = count + 1
+ end
+ end
+
+ count;
+ end
+
+ def occurences_count
+ hash = Hash.new(0);
+ self.each do |element|
+ occurences = hash[element]
+ hash[element] = occurences + 1
+ end
+ hash
+ end
+end