Решение на Първа задача от Михаил Петков

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

Към профила на Михаил Петков

Резултати

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

Код

class Array
def to_hash ()
length = self.length()
hash = Hash.new
for i in 0..length-1
key = self[i][0]
hash[key] = self[i][1]
end
p hash
end
def index_by ()
hash = Hash.new
self.each do |n|
hash[yield n] = n
end
p hash
end
def subarray_count (subarray)
length = 0
counter = 0
self.each do |n|
temp_array = Array.new
break if length == self.length() - subarray.length() + 1
for i in length..length + subarray.length() - 1
temp_array << self[i]
end
if temp_array == subarray
counter += 1
end
length += 1
end
p counter
end
def occurences_count ()
hash = Hash.new
hash.default = 0
self.each do |n|
if hash.has_key?(n)
hash[n] += 1
else
hash[n] = 1
end
end
hash
end
end

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

{:one=>1, :two=>2}
.{1=>3, 3=>4}
.{1=>[2, 3], [4, 5]=>6}
.{}
.{nil=>"nil", true=>"true", false=>"false"}
.{"Coltrane"=>"John Coltrane", "Davis"=>"Miles Davis"}
.{1=>41}
.{}
.{nil=>nil, false=>false}
.3
.2
.0
.0
.....

Finished in 0.01656 seconds
17 examples, 0 failures

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

Михаил обнови решението на 22.10.2011 16:54 (преди над 12 години)

+class Array
+ def to_hash ()
+ length = self.length()
+ hash = Hash.new
+ for i in 0..length-1
+ key = self[i][0]
+ hash[key] = self[i][1]
+ end
+ p hash
+ end
+
+ def index_by ()
+ hash = Hash.new
+ self.each do |n|
+ hash[yield n] = n
+ end
+ p hash
+ end
+
+ def subarray_count (subarray)
+ length = 0
+ counter = 0
+ self.each do |n|
+ temp_array = Array.new
+ break if length == self.length() - subarray.length() + 1
+ for i in length..length + subarray.length() - 1
+ temp_array << self[i]
+ end
+ if temp_array == subarray
+ counter += 1
+ end
+ length += 1
+ end
+ p counter
+ end
+
+ def occurences_count ()
+ hash = Hash.new
+ hash.default = 0
+ self.each do |n|
+ if hash.has_key?(n)
+ hash[n] += 1
+ else
+ hash[n] = 1
+ end
+ end
+ hash
+ end
+end