привет дневник, сегодня увидел интересный код и решил записать себе на долгую память где то на месяц, пока оплачен хостинг:)
в общем вывести какое либо число с нулями в переди. первая и вторая запись делают одно и тоже
a= format("%04d",2+1)
p a
p "0002".succ
а так же как сложить или перемножить все элементы цикла
def persistence(n)
m=0
while n.to_s.length!=1 do
n=n.to_s.chars.map{|x| x.to_i}.reduce(:*)
m+=1
end
m
end
задачка 4 кю кодеварса, составить рейтинг трех популярных слов из текста, игнорируя точки, запятые, слеши, все в нижнем регистре. Вот мое
def top_3_words(text)
mas={}
text.downcase.split(/[,.\/']{0,}\s{1,}[,.'\/]{0,}/).reject(&:empty?).each{|x| mas[x]=mas[x].to_i+1}
mas.sort{|a,b| a[1] <=> b[1]}.reverse[0..2].map{|x,y| x}
end
А вот бес практис
def top_3_words(text)
text.scan(/[A-Za-z']+/)
.select { |x| /[A-Za-z]+/ =~ x }
.group_by { |x| x.downcase }
.sort_by { |k,v| -v.count }
.first(3)
.map(&:first)
end