Wyszukiwarka wzorów
Część sekcji Podstawy ścieżki Ruby w Coddy. Lekcja 87 z 88.
Wyzwanie
ŁatwyWczytaj 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ć:
abcJeśli wejściem jest xyxyxyxy, wynikiem powinno być:
xyJeśli wejściem jest aaaa, wynikiem powinno być:
aJeśli wejściem jest hello, wynikiem powinno być:
helloJeśli wejściem jest abcdef, wynikiem powinno być:
abcdefSpró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 resultWszystkie lekcje w sekcji Podstawy
4Operatory — część 2
Operatory logiczne — część 1Operatory logiczne — część 2Powtórka — podstawy logikiOperatory logiczne — część 3Operatory logiczne — część 47Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika2Zmienne i typy danych
Liczby i zmienneTyp danych StringTyp danych BooleanTyp danych SymbolSprawdzanie typów danychKonwencje nazewnictwaPodsumowanie — tworzenie zmiennych5Podejmowanie decyzji
Instrukcja ifIf - elsePowtórka — prosty kalkulatorZagnieżdżone if - elseInstrukcja unless8Pętle
Pętla for z zakresamiPętla whilebreaknextPowtórka – silniaPętla timesPętla untilPętle zagnieżdżonePowtórka – dynamiczne wejście3Operatory — część 1
Operatory arytmetyczneOperator moduloSkrócone operatory arytmetycznePodsumowanie — prosta matematykaOperatory porównania6Podstawowe wejście i wyjście
Wyświetlanie za pomocą putsWyświetlanie za pomocą print i pWyświetlanie zmiennychWczytywanie za pomocą getsMetoda chompKonwersja typówPodsumowanie – kalkulator wiekuPodsumowanie – prawda czy fałszPoćwicz samodzielnie: Kompilator Ruby online