Решение на Първа задача от Румен Ангелов

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

Към профила на Румен Ангелов

Резултати

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

Код

class Array
def to_hash
hash = {}
self.each { |item| hash[item[0]] = item[1] }
hash
end
def index_by
hash = {}
self.each { |item| hash[yield item] = item }
hash
end
def subarray_count(subarray = [])
count = 0
i = 0
while i < self.length - subarray.length + 1 do
count += 1 if self[ i..(subarray.length - 1 + i) ] == subarray
i += 1
end
count
end
def occurences_count
hash = Hash.new(0)
cnt = 0;
while self.length != 0
self.each { |item| cnt +=1 if self.first == item }
hash[first] = cnt;
delete(self.first)
cnt = 0
end
hash
end
end

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

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

Finished in 0.0139 seconds
17 examples, 0 failures

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

Румен обнови решението на 22.10.2011 23:05 (преди около 13 години)

+class Array
+ def to_hash
+ hash = {}
+ self.each { |item| hash[item[0]] = item[1] }
+ hash
+ end
+
+ def index_by
+ hash = {}
+ self.each { |item| hash[yield item] = item }
+ hash
+ end
+
+ def subarray_count(subarray = [])
+ count = 0
+ i = 0
+ while i < self.length - subarray.length + 1 do
+ count += 1 if self[ i..(subarray.length - 1 + i) ] == subarray
+ i += 1
+ end
+ count
+ end
+
+ def occurences_count
+ hash = Hash.new(0)
+ cnt = 0;
+ while self.length != 0
+ self.each { |item| cnt +=1 if self.first == item }
+ hash[first] = cnt;
+ delete(self.first)
+ cnt = 0
+ end
+ hash
+ end
+end