Кирил обнови решението на 22.10.2011 18:35 (преди около 13 години)
+class Array
+
+ def to_hash
+ self.inject({}) { |k, v| k[v[0]] = v[1]; k }
+ end
+
+ def index_by
+ self.inject({}) { |k, v| k.merge!(yield(v) => v) }
+ end
+
+ def subarray_count(given, count=0)
+ (0...self.length).each { |i| count += 1 if given.eql? self[i...i+given.length] }
+ count
+ end
+
+ def occurences_count
+ self.inject(Hash.new(0)) { |k, v| k[v] = k.fetch(v, 0) + 1; k}
+ end
+
+end