Matura informatyka zbiór zadań. Zadanie 68 - Napisy.

Kliknij i wspomóż mnie :)

Python

Wstęp

Arkusz z zadaniem znajdziesz tutaj:

Matura_Zbiór_zadań_Informatyka

Repozytorium z danymi i rozwiązaniem:

Github

W pliku dane_napisy.txt znajduje się 1000 par napisów, z których każdy jest długości od 2 do 20 znaków, składających się z wielkich liter: A, B, C, D, E, F, G, H, I, J. Każda para napisów jest zapisana w osobnym wierszu, a napisy oddzielone są pojedynczym znakiem odstępu.

Odczyt danych

Na początku trzeba jakoś zinterpretować dane z pliku. Ja zdecydowałem się na przechowywanie danej linii w tablicy dwóch elementów.

Każdą z takich par przechowuje tablica anagrams. Trzeba pamiętać, że zawiera ona jeszcze nie przetworzone dane. Czyli nie koniecznie anagramy.

Napis jednolity

Napis nazywamy jednolitym, jeżeli wszystkie jego litery są takie same. Przykładem takiego napisu jest AAAA. Podaj liczbę wierszy zawierających parę napisów jednolitych, które są wzajemnie swoimi anagramami.

W pętli wyciągamy każdą parę i na początku porównujemy ich długości.

Jeżeli długości są takie same to wtedy można porównać wszystkie litery. Jeżeli warunek jest spełniony to zwiększamy licznik.

Anagramy

Podaj liczbę wierszy, które zawierają napisy będące wzajemnie swoimi anagramami.

Na potrzeby tego i następnego zadania definiujemy funkcję isAnagram(). Porównuje ona długości oraz elementy (litery) za pomocą zbiorów (set()).

Funkcja główna polega na zliczeniu spełnionych warunków i zwróceniu liczby.

Największe anagramy

Podaj największą liczbę k taką, że w pliku znajduje się k napisów, z których każde dwa są wzajemnie swoimi anagramami.

W ostatnim przypadku musimy rozdzielić nasze pary na pojedyncze słowa. Te zostają wprowadzone do tablicy allWords

Później za pomocą podwójnej pętli bierzemy jeden wyraz z allWords i porównujemy go ze wszystkimi elementami tej tablicy.

Jeżeli znajdziemy więcej tych samych anagramów niż obecnie to ustawimy na taką wartość zmienną k.

Teraz już tylko wywołać nasz kod!

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.