Menu
Coddy logo textTech

Détecteur de motifs

Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 87 sur 88.

challenge icon

Défi

Facile

Lisez une chaîne de caractères à partir de l'entrée et trouvez le plus petit motif répétitif qui forme l'intégralité de la chaîne.

Un motif valide doit :

  • Avoir une longueur qui divise uniformément la longueur totale de la chaîne
  • Lorsqu'il est répété le nombre de fois approprié, recréer exactement la chaîne d'origine

Si la chaîne est composée d'un motif répétitif, affichez ce plus petit motif. Si aucun motif répétitif n'existe, affichez la chaîne d'origine.

Pour vérifier si un motif fonctionne, vous pouvez utiliser la multiplication de chaînes : pattern * count crée une nouvelle chaîne en répétant le motif.

Par exemple, si l'entrée est abcabcabc, la sortie devrait être :

abc

Si l'entrée est xyxyxyxy, la sortie devrait être :

xy

Si l'entrée est aaaa, la sortie devrait être :

a

Si l'entrée est hello, la sortie devrait être :

hello

Si l'entrée est abcdef, la sortie devrait être :

abcdef

Essayez vous-même

# Lire la chaîne d'entrée
s = gets.chomp

# À FAIRE : Écrivez votre code ci-dessous
# Trouver le plus petit motif répétitif qui forme la chaîne entière
# Indice : Vérifiez les longueurs de motif qui divisent uniformément la longueur de la chaîne
# Utilisez la multiplication de chaînes (motif * nombre) pour vérifier si un motif fonctionne

result = s  # Remplacez ceci par votre solution

# Afficher le résultat
puts result

Toutes les leçons de Fondamentaux