Przesuń zera na koniec listy
Treść zadania
Otrzymujesz listę liczb całkowitych. Przenieś wszystkie zera na koniec listy, zachowując kolejność pozostałych elementów.
Dane wejściowe
- 1. linia:
n— długość listy - 2. linia:
nliczb całkowitych oddzielonych spacjami
Dane wyjściowe
Jedna linia: n liczb listy po przekształceniu, oddzielonych spacjami.
Ograniczenia
1 ≤ n ≤ 1000- elementy listy są z przedziału $[-10^6, 10^6]$
Uwagi
- Spróbuj przekształcić listę w miejscu, bez tworzenia nowej listy: przepisuj kolejne niezerowe elementy na początek listy, a resztę wypełnij zerami. Takie rozwiązanie działa w czasie $O(n)$.
Przykład
11 0 1 3 0 8 12 0 4 0 7 0
1 3 8 12 4 7 0 0 0 0 0
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 24
Trudniejsze zadania na listach: przekształcenia w miejscu, sumy prefiksowe, kopiec i programowanie dynamiczne. Liczy się nie tylko poprawny wynik, ale też dobry algorytm — w testach są także długie listy, na których rozwiązanie „sprawdzające wszystkie możliwości” nie zdąży się wykonać.
Konwencje wspólne:
- Każde zadanie to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Program nie wypisuje komunikatów typu „Podaj liczbę:”. Tekst podany w
input("…")jest ignorowany przez sprawdzarkę. - Lista liczb jest podawana w dwóch liniach: w pierwszej jest liczba elementów
n, w drugiejnliczb całkowitych oddzielonych spacjami (o ile zadanie nie mówi inaczej). - Listę wynikową wypisuj w jednej linii, a jej elementy oddzielaj pojedynczą spacją (o ile zadanie nie mówi inaczej).
- Indeksy liczymy od
0.
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 0
0
Test 2
Nie uruchomiono4 0 0 0 0
0 0 0 0
Test 3
Nie uruchomiono3 5 -2 7
5 -2 7
Test 4
Nie uruchomiono6 0 1 0 3 0 5
1 3 5 0 0 0
Test 5
Nie uruchomiono6 0 0 -1 0 2 -3
-1 2 -3 0 0 0
Test 6
Nie uruchomiono8 4 0 4 0 3 0 4 9
4 4 3 4 9 0 0 0
Test 7
Nie uruchomiono30 34 -6 -50 0 0 0 48 0 -33 -39 0 0 0 0 0 0 0 0 0 0 0 0 2 13 0 -44 2 36 0 17
34 -6 -50 48 -33 -39 2 13 -44 2 36 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0