Połącz posortowane listy w posortowaną listę bez duplikatów
Treść zadania
Wczytaj dwie listy liczb całkowitych, każdą posortowaną niemalejąco, i scal je w jedną listę, która:
- jest posortowana rosnąco,
- zawiera każdą wartość tylko raz (bez duplikatów — także tych, które powtarzają się w obrębie jednej listy).
Wykorzystaj to, że listy wejściowe są już posortowane: przechodź jednocześnie po obu listach i za każdym razem dobieraj mniejszy z dwóch bieżących elementów.
Dane wejściowe
- 1. linia: lista 1 (posortowana niemalejąco) — liczby całkowite oddzielone spacjami
- 2. linia: lista 2 (posortowana niemalejąco) — liczby całkowite oddzielone spacjami
Dane wyjściowe
Jedna linia: scalona, posortowana lista bez duplikatów.
Przykład
2 4 7 3 5 9
[2, 3, 4, 5, 7, 9]
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 10
Zadania w tym rozdziale ćwiczą jednoczesną pracę na dwóch listach (lub dwóch napisach traktowanych jak ciągi znaków): łączenie, porównywanie, przechodzenie po indeksach i scalanie list posortowanych. Pod koniec rozdziału poznasz zbiory (set) — kolekcje bez powtórzeń, które pozwalają jednym działaniem wyznaczyć część wspólną, sumę czy różnicę dwóch list — oraz funkcje zip i enumerate, ułatwiające przechodzenie po dwóch ciągach naraz.
Konwencje wspólne:
- Każde zadanie jest osobnym programem: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Program nie wypisuje komunikatów typu „Podaj listę:”.
- Każda lista zajmuje na wejściu jedną linię, a jej elementy są oddzielone pojedynczymi spacjami, np.
5 3 7 2. Najpierw podana jest lista 1, w następnej linii lista 2. Każda lista ma co najmniej jeden element. - Listę liczb całkowitych wczytasz tak:
lista = [int(x) for x in input().split()](dla liczb zmiennoprzecinkowych użyjfloatzamiastint). - Gdy wynikiem jest lista, wypisz ją tak, jak robi to
print(lista)w Pythonie: w nawiasach kwadratowych, elementy oddzielone przecinkiem i spacją, np.[1, 2, 3]. Pusta lista to[]. - Gdy treść mówi o elementach „oddzielonych przecinkami bez spacji”, wypisz je w jednej linii, np.
5,1,3, bez przecinka na końcu — np.print(*lista, sep=",").
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 uruchomiono1 3 5 2 3 4
[1, 2, 3, 4, 5]
Test 2
Nie uruchomiono0 2 2 2 2 3
[0, 2, 3]
Test 3
Nie uruchomiono-5 -1 10 20
[-5, -1, 10, 20]
Test 4
Nie uruchomiono7 7
[7]
Test 5
Nie uruchomiono1 1 1 1 2 2 3
[1, 2, 3]
Test 6
Nie uruchomiono4 8 9 1 2 3
[1, 2, 3, 4, 8, 9]