@Panda_Code
Сognizer

Как упростить код с использованием блока?

Как, следующий код сделать менее многословным:
# frozen_string_literal: true

vowels = %w[a e i o u]
found = {}
founded = 0

puts 'Puts the word: '
words = gets.chomp.chars
words.each do |n|
  next unless vowels.include?(n)

  found.store(n, 0)
  puts "We have #{founded + 1} vowel(s)."
  found[n] += 1
end

Возможен ли другой путь?
Заранее спасибо!
  • Вопрос задан
  • 101 просмотр
Решения вопроса 2
0xD34F
@0xD34F
vowelsCount = Hash['aeiou'.chars.map{|n| [ n, 0 ]}]
gets.chomp.chars.each{|n| vowelsCount[n] += 1 if vowelsCount.key?(n)}

print(vowelsCount)
Ответ написан
@GeneAYak
Начиная с версии 2.7 и выше, доступен специальный метод tally для этого

соответственно, код можно еще упростить:

puts gets.chomp.chars.tally.select { |k| %w[a e i o u].include? k }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы