Красимир обнови решението на 23.10.2011 12:07 (преди около 13 години)
+class Array
+ def to_hash
+
+ new_hash = {}
+
+ self.each do |element_array|
+ if (element_array.length != 2) then print "Wrong element in argument array"
+ else
+ new_hash[element_array[0]] = element_array[1]
+ end
+ end
+ return new_hash
+ end
+
+ def index_by
+
+ new_hash = {}
+
+ self.each() do |element|
+ new_hash[ yield element ] = element
+ end
+
+ return new_hash
+ end
+
+ def subarray_count(subarray)
+ i = 0
+ subarray_length = subarray.length
+ arr_length = self.length
+ subarray_counter = 0
+
+ for i in 0..arr_length-subarray_length do
+ if self[i..i+subarray_length-1] == subarray then subarray_counter+=1
+ end
+ end
+ return subarray_counter
+ end
+
+ def occurences_count
+ new_hash = {}
+ new_hash = Hash.new(0)
+
+ self.each() do |element|
+ new_hash[element] = subarray_count([element])
+ end
+
+ return new_hash
+
+ end
+end
+