Rozwiązanie
Zadanie 4.2 – matura 2020, maj

Pary
W pliku pary.txt znajduje się 100 wierszy. Każdy wiersz zawiera parę danych składającą się z liczby całkowitej z przedziału od 3 do 100 i słowa (ciągu znaków) złożonego z małych liter alfabetu angielskiego o długości od 1 do 50 znaków. Liczba i słowo są oddzielone znakiem spacji.
Napisz program(-my), dający(-e) odpowiedzi do poniższych zadań. Uzyskane odpowiedzi zapisz w pliku wyniki4.txt, poprzedzając każdą z nich numerem odpowiedniego zadania.
Uwaga: plik przyklad.txt zawiera przykładowe dane spełniające warunki zadania.
Odpowiedzi dla danych z pliku przyklad.txt są podane pod treściami zadań oraz w pliku odp_przyklad.txt. Dla każdego słowa z pliku pary.txt znajdź długość najdłuższego spójnego fragmentu tego słowa złożonego z identycznych liter. Wypisz znalezione fragmenty słów i ich długości oddzielone spacją, po jednej parze w każdym wierszu. Jeżeli istnieją dwa fragmenty o takiej samej największej długości, podaj pierwszy z nich. Wyniki podaj w kolejności zgodnej z kolejnością danych w pliku pary.txt.
Przykład:
dla słowa zxyzzzz wynikiem jest:
zzzz 4
natomiast dla słowa kkkabbb wynikiem jest:
kkk 3
Dla danych z pliku przyklad.txt odpowiedzi podano w pliku odp_przyklad.txt.
Rozwiązanie zadań w Pythonie:
lines = ""
with open("Dane_PR2/pary.txt") as f:
    lines = f.readlines()

nums = []
strings = []

for line in lines:
    line.strip()
    num, string = line.split()
    nums.append(int(num))
    strings.append(string)

print("
4.2")
for string in strings:
    current_word = string[0]
    longest_word = string[0]
    for char in string[1:]:
        if char == current_word[-1]:
            current_word += char
        else:
            current_word = char
        if len(current_word) > len(longest_word):
                longest_word = current_word
    print(longest_word, len(longest_word))
Pobierz rozwiązanie
Wytłumaczenie pojawi się niebawem.
Wyszukaj więcej zadań z tego arkusza...