Венета обнови решението на 24.10.2011 00:58 (преди около 13 години)
+class Array
+ def to_hash
+ Hash[*self.flatten]
+ end
+
+ def index_by
+ self.inject({}) do |hash, word|
+ hash[yield word] = word
+ hash
+ end
+ end
+
+ def subarray_count(subarray)
+ count = 0
+ subarrayLength = subarray.length
+ arrayLength = self.length
+ self.each_index do |i|
+ break if i + subarrayLength > arrayLength
+ count += 1 if self.slice(i, subarrayLength) == subarray
+ end if subarrayLength > 0 && arrayLength > 0
+ count
+ end
+
+ def occurences_count
+ self.inject(Hash.new(0)) do |hash, word|
+ hash[word] = (hash[word] || 0) + 1
+ hash
+ end
+ end
+end