Menu
Coddy logo textTech

Localizador de Padrões

Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 87 de 88.

challenge icon

Desafio

Fácil

Leia uma string da entrada e encontre o menor padrão de repetição que forma a string inteira.

Um padrão válido deve:

  • Ter um comprimento que divida uniformemente o comprimento total da string
  • Quando repetido o número apropriado de vezes, recriar a string original exatamente

Se a string for composta por um padrão de repetição, imprima esse menor padrão. Se não existir nenhum padrão de repetição, imprima a string original.

Para verificar se um padrão funciona, você pode usar a multiplicação de strings: pattern * count cria uma nova string repetindo o padrão.

Por exemplo, se a entrada for abcabcabc, a saída deve ser:

abc

Se a entrada for xyxyxyxy, a saída deve ser:

xy

Se a entrada for aaaa, a saída deve ser:

a

Se a entrada for hello, a saída deve ser:

hello

Se a entrada for abcdef, a saída deve ser:

abcdef

Experimente você mesmo

# Lê a string de entrada
s = gets.chomp

# TODO: Escreva seu código abaixo
# Encontre o menor padrão de repetição que forma a string inteira
# Dica: Verifique comprimentos de padrão que dividem uniformemente o comprimento da string
# Use a multiplicação de strings (padrão * contagem) para verificar se um padrão funciona

result = s  # Substitua isso pela sua solução

# Exibe o resultado
puts result

Todas as lições de Fundamentos