Znalezienie anagramów w tekście (grupy)
Treść zadania
Wczytaj tekst. Znajdź grupy różnych słów, które są swoimi anagramami (składają się z tych samych liter w tej samej liczbie, np. absurd i brudas), nie rozróżniając wielkości liter. Wypisz każdą grupę, która zawiera co najmniej dwa różne słowa.
Dane wejściowe
- 1. linia: tekst
Dane wyjściowe
- Każda grupa w osobnej linii: słowa małymi literami, oddzielone pojedynczą spacją, w kolejności pierwszego wystąpienia w tekście.
- Grupy w kolejności pierwszego wystąpienia ich pierwszego słowa.
- Jeśli nie ma żadnej grupy — jedna linia
Brak anagramów.
Ograniczenia
- tekst ma od 1 do 300 znaków
Uwagi
- Słowo to najdłuższy ciąg kolejnych liter; pozostałe znaki rozdzielają słowa. Wielkość liter nie ma znaczenia (
Tyrantotyran). - Słowo powtórzone w tekście liczy się raz —
kot kotnie jest grupą anagramów. - Wskazówka: użyj słownika, w którym kluczem są posortowane litery słowa (
"".join(sorted(slowo))), a wartością lista słów.
Przykład
Tyran Brudas kupił narty. To absurd! Arbuz i burza.
tyran narty brudas absurd arbuz burza
Zasady obowiązujące w rozdziale 17
Zadania w tym rozdziale ćwiczą pracę ze słownikami (dict): tworzenie, dodawanie i usuwanie par, zliczanie wystąpień oraz grupowanie danych według klucza.
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem: czyta standardowe wejście (stdin) i wypisuje wynik na standardowe wyjście (stdout).
Konwencje wspólne:
- Dane wczytuj dokładnie w kolejności podanej w sekcji Wejście; jeśli w jednej linii jest kilka wartości — rozbij ją po spacjach.
- Jeśli wynikiem jest słownik, wypisz go tak, jak robi to
print(slownik)w Pythonie:{klucz: wartość, klucz: wartość}— pary oddzielone przecinkiem i spacją, po dwukropku spacja, klucze i wartości napisowe w apostrofach (np.{'ala': 2, 'ma': 1}), liczby bez apostrofów (np.{1: 1, 2: 4}), pusty słownik to{}. - Kolejność par w wypisanym słowniku to kolejność, w jakiej klucze były do niego dodawane (tak zachowuje się słownik w Pythonie).
- Program nie wypisuje komunikatów typu „Podaj liczbę:”.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomionorat tar art dog
rat tar art
Test 2
Nie uruchomionolisten silent enlist inlets cat
listen silent enlist inlets
Test 3
Nie uruchomionoAla ma kota
Brak anagramów
Test 4
Nie uruchomionoKot kot KOT tok
kot tok
Test 5
Nie uruchomionokot kot
Brak anagramów
Test 6
Nie uruchomionoEwa i kot, Wea? Tok! Aew i ok.
ewa wea aew kot tok
Test 7
Nie uruchomionoTo absurd, że tyran Brudas, ten straszliwy bandzior, sprawuje rządy w tym kraju. Burza nad galeria i alergia na narty to żadna zbrodnia, jak bandzior i jego arbuz.
absurd brudas tyran narty bandzior zbrodnia burza arbuz galeria alergia