Menu
Coddy logo textTech

Wyszukiwarka wzorów

Część sekcji Podstawy ścieżki Ruby w Coddy. Lekcja 87 z 88.

challenge icon

Wyzwanie

Łatwy

Wczytaj ciąg znaków i znajdź najmniejszy powtarzający się wzorzec, z którego składa się cały ciąg.

Poprawny wzorzec musi:

  • Mieć długość, która dzieli całkowitą długość ciągu bez reszty
  • Po powtórzeniu odpowiednią liczbę razy odtworzyć dokładnie oryginalny ciąg

Jeśli ciąg składa się z powtarzającego się wzorca, wypisz ten najmniejszy wzorzec. Jeśli nie istnieje powtarzający się wzorzec, wypisz oryginalny ciąg.

Aby sprawdzić, czy wzorzec pasuje, możesz użyć mnożenia ciągu znaków: pattern * count tworzy nowy ciąg, powtarzając wzorzec.

Na przykład, jeśli wejściem jest abcabcabc, wynikiem powinno być:

abc

Jeśli wejściem jest xyxyxyxy, wynikiem powinno być:

xy

Jeśli wejściem jest aaaa, wynikiem powinno być:

a

Jeśli wejściem jest hello, wynikiem powinno być:

hello

Jeśli wejściem jest abcdef, wynikiem powinno być:

abcdef

Spróbuj swoich sił

# Wczytaj ciąg wejściowy
s = gets.chomp

# TODO: Napisz poniżej swój kod
# Znajdź najkrótszy powtarzający się wzorzec, z którego składa się cały ciąg
# Wskazówka: Sprawdź długości wzorca, które są dzielnikami długości ciągu
# Użyj mnożenia ciągów (pattern * count), aby sprawdzić, czy wzorzec pasuje

result = s  # Zastąp to swoim rozwiązaniem

# Wyświetl wynik
puts result

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Ruby online