Soluzione Lettere (b)
21 Feb 2017
Soluzione Lettere (b)
def letters(msg)
# Controlliamo l'input
raise ArgumentError, "msg deve essere una stringa" unless msg.is_a? String
# Costruiamo alcuni elementi su cui lavorare come l'hash
# da ritornare e il messaggio in ingresso con tutte le
# lettere lower case
r, m = {}, msg.downcase
# per ogni lettera dell'alfabeto, range da "a" a "z"
("a".."z").each do |c|
# per ogni lettera del messaggio
m.each_char do |l|
# se sono uguali
if l == c
# aggiungi la chiave all'hash se non esiste
r[c] = 0 unless r.keys.include? c
# inrementa il suo contatore
r[c] += 1
end
end
end
# Ritorna l'hashsu cui stiamo lavorando
return r
end