- Reto #7
- Fecha publicación enunciado: 14/02/22
- Dificultad: MEDIA
- Origen: https://github.com/mouredev/Weekly-Challenge-2022-Kotlin/blob/main/app/src/main/java/com/mouredev/weeklychallenge2022/Challenge7.kt
Crea un programa que cuente cuantas veces se repite cada palabra y que muestre el recuento final de todas ellas.
- Los signos de puntuación no forman parte de la palabra.
- Una palabra es la misma aunque aparezca en mayúsculas y minúsculas.
- No se pueden utilizar funciones propias del lenguaje que lo resuelvan automáticamente.
defmodule WordCounter do
def count(string) do
string
|> String.downcase()
|> String.replace([".", ";", ",", "?", "¿", "!", "¡", ":", "'", "\""], "")
|> String.split()
|> Enum.reduce(%{}, fn word, acc ->
count = Map.get(acc, word, 0) + 1
Map.put(acc, word, count)
end)
end
end
{:module, WordCounter, <<70, 79, 82, 49, 0, 0, 8, ...>>, {:count, 1}}
defmodule Solution do
def run() do
WordCounter.count("Hola, mundo hola mundo !! hola hola !!! mundo ;; mundo?")
end
end
{:module, Solution, <<70, 79, 82, 49, 0, 0, 6, ...>>, {:run, 0}}
Solution.run()
%{"hola" => 4, "mundo" => 4}