Петър обнови решението на 23.10.2011 18:31 (преди около 13 години)
+class Array
+ def to_hash#need some error checking
+ hash = {}
+ self.each { |x| hash[x[0]] = x[1] }
+ hash
+ end
+
+ def index_by(&block)
+ hash = {}
+ self.each { |a| hash[block.(a)] = a }
+ hash
+ end
+
+ def subarray_count(arr)
+ if arr.size == 0 #some error cheking
+ raise ArgumentError, "Empty array parameter!"
+ end
+
+ count = 0
+ if arr.size <= self.size
+ current = 0
+ while current < self.size
+ subarr = self[current..(current+arr.size-1)]
+ count+=1 if subarr == arr
+ current+=1
+ end
+ end
+ count
+ end
+
+ def occurences_count
+ h = Hash.new(0)
+ self.each { |x| h[x] = h[x]+1 }
+ h
+ end
+end