Rozwiązanie
Zadanie 4.3 – 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. Para (liczba1, słowo1) jest mniejsza od pary (liczba2, słowo2), gdy:
– liczba1 < liczba2,
albo
– liczba1 = liczba2 oraz słowo1 jest leksykograficznie (w porządku alfabetycznym) mniejsze od słowo2.
Przykład:
para (1, bbbb) jest mniejsza od pary (2, aaa), natomiast para (3, aaa) jest mniejsza od pary (3, ab).
Rozważ wszystkie pary (liczba, słowo) zapisane w wierszach pliku pary.txt, dla których liczba jest równa długości słowa, i wypisz spośród nich taką parę, która jest mniejsza od wszystkich pozostałych. W pliku pary.txt jest jedna taka para.
Dla danych z pliku przyklad.txt odpowiedzią jest:
6 abbbbc
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.3")
pairs = []
for num, string in zip(nums, strings):
    if num == len(string):
        pairs.append((num, string))

smallest_pair = sorted(pairs)[0]
print(smallest_pair[0], smallest_pair[1])
Pobierz rozwiązanie
Wytłumaczenie pojawi się niebawem.
Wyszukaj więcej zadań z tego arkusza...