Menu
Coddy logo textTech

Análise de Palavras

Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy — lição 54 de 56.

Um desafio independente que utiliza strings, hashes, Hash.new(0) e métodos Enumerable tudo de uma vez.

challenge icon

Desafio

Médio

Leia uma única linha de entrada, uma frase. Analise-a e imprima três linhas:

  1. O número de palavras únicas (insensível a maiúsculas e minúsculas, com pontuação removida). Palavras repetidas contam apenas uma vez cada.
  2. As palavras repetidas (aquelas que aparecem mais de uma vez), ordenadas alfabeticamente, unidas por , . Se não houver nenhuma, imprima (none).
  3. As palavras palíndromas, palavras que são lidas da mesma forma de frente para trás e de trás para frente, com comprimento ≥ 2, ordenadas alfabeticamente, unidas por , . Se não houver nenhuma, imprima (none).

Remova os caracteres .,!?:;"() de cada palavra antes do processamento. Converta tudo para minúsculas para comparação.

Para a entrada Madam saw a racecar. Dad said hello hello to mom., a saída é:

9
hello
dad, madam, mom, racecar

Experimente você mesmo

input = gets.chomp

# TODO: dividir, remover pontuação, converter para minúsculas e imprimir:
#   contagem única, palavras repetidas, palíndromos (comprimento >= 2)
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo