Решение на Първа задача от Петър Костов

Обратно към всички решения

Към профила на Петър Костов

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 17 успешни тест(а)
  • 0 неуспешни тест(а)

Код

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

Лог от изпълнението

.................

Finished in 0.01396 seconds
17 examples, 0 failures

История (1 версия и 0 коментара)

Петър обнови решението на 23.10.2011 18:31 (преди над 12 години)

+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