Grupy anagramów
Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 54 z 56.
Wyzwanie
ŚredniDwa słowa są anagramami, jeśli ich posortowane litery są identyczne: listen i silent po posortowaniu dają eilnst.
Wczytaj jeden wiersz danych wejściowych: listę słów rozdzielonych przecinkami (małymi literami, bez spacji wewnątrz słów).
Pogrupuj słowa według ich posortowanej sygnatury liter. Wypisz w następującej kolejności:
- Jeden wiersz dla każdej grupy zawierającej dwa lub więcej słów, w formacie
<signature>: <word1>,<word2>,.... W obrębie grupy zachowaj kolejność słów z danych wejściowych. Posortuj grupy alfabetycznie według sygnatury. Total groups: <n>(liczba grup zawierających dwa lub więcej słów).
Dla danych wejściowych listen,silent,abc,enlist,cab,xyz wynikiem jest:
abc: abc,cab
eilnst: listen,silent,enlist
Total groups: 2Spróbuj swoich sił
let words = readLine()!.components(separatedBy: ",")
// TODO: utwórz [signature: [word]]; wypisz posortowane grupy o rozmiarze >= 2;
// następnie wypisz 'Total groups: <n>'
Wszystkie lekcje w sekcji Logika i przepływ programu
1Dogłębnie o ciągach znaków
Liczba i indeksyWielkość liter i usuwanie białych znakówWyszukiwanie w ciągach znakówDzielenie i łączenieZastępowanie podciągówPodsumowanie — sprawdzanie nazwy użytkownika4Zbiory
Tworzenie zbiorówSuma i część wspólnaRóżnica i różnica symetrycznaPodzbiór i nadzbiórPowtórka — filtr tagów7Projekt – Śledzenie nawyków
Przegląd projektuOznacz jako wykonane10Projekt — silnik quizów
Przegląd projektuZadawanie pytań2Zakresy i kroki
Zakresy domknięte i półotwarteKrokMetody zakresówZakresy w instrukcji switchPowtórka — siatka kalendarza5Funkcje wyższego rzędu, część 1
MapFilterReduceŁączenie map, filter i reducePodsumowanie – statystyki słówPoćwicz samodzielnie: Edytor online Swift