Sortowanie słów w zdaniu

Zadanie 2 z 9 · rozdział 22Trudność: 2 z 3sortstringsplit

Treść zadania

Wczytaj zdanie i podziel je na słowa. Słowa oddzielają od siebie spacje oraz znaki interpunkcyjne: . , ! ? ; : — te znaki nie należą do słów. Posortuj słowa rosnąco (według kodów Unicode, bez zmiany wielkości liter) i wypisz je.

Dane wejściowe

  • 1. linia: zdanie (zawiera co najmniej jedno słowo)

Dane wyjściowe

  • 1. linia: posortowane słowa oddzielone pojedynczymi spacjami

Jeśli słowo występuje w zdaniu kilka razy, wypisz je tyle samo razy.

Ograniczenia

  • Zdanie ma co najwyżej 200 znaków.

Uwagi

  • Najprościej zamienić każdy znak interpunkcyjny na spację (napis.replace(".", " ") itd.), a potem użyć split().

Przykłady

Wejście
Lemur wygina śmiało ciało
Wyjście
Lemur ciało wygina śmiało
Wejście
Ala ma kota, a kot ma Alę.
Wyjście
Ala Alę a kot kota ma ma

Wielkie litery są przed małymi, a Ala jest przed Alę, bo 'a' < 'ę'.

Potrzebujesz teorii?

Zasady obowiązujące w rozdziale 22

Zadania w tym rozdziale pokazują, jak sortować w praktyce: napisy, słowa, pary, obiekty — często według własnego kryterium. Tutaj wolno (a nawet warto) korzystać z wbudowanych narzędzi Pythona: sorted(), list.sort() i parametru key=.

Konwencje wspólne:

  • Każde zadanie to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
  • Jeśli wejściem jest napis — wczytaj całą linię (łącznie ze spacjami).
  • Jeśli wejściem jest lista — najpierw podana jest liczba elementów $N$, a potem elementy (w jednej linii albo w kolejnych liniach — zależnie od zadania).
  • Napisy porównujemy tak jak Python, czyli według kodów znaków Unicode: wielkie litery są „mniejsze” od małych ('Z' < 'a'), a polskie litery są „większe” od wszystkich liter alfabetu łacińskiego ('z' < 'ą').
  • Sortowanie w Pythonie (sorted(), list.sort()) jest stabilne: elementy równe według kryterium sortowania zachowują kolejność z wejścia. Korzystają z tego zadania, w których mogą wystąpić remisy.
  • Program nie wypisuje komunikatów typu „Podaj liczbę:”.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

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 uruchomiono
Wejście
Bob, Ala pies.
Oczekiwane wyjście
Ala Bob pies

Test 2

Nie uruchomiono
Wejście
zoo! ala? kot.
Oczekiwane wyjście
ala kot zoo

Test 3

Nie uruchomiono
Wejście
kot,pies;mysz
Oczekiwane wyjście
kot mysz pies

Test 4

Nie uruchomiono
Wejście
słowo
Oczekiwane wyjście
słowo

Test 5

Nie uruchomiono
Wejście
Zebra zebra ZEBRA
Oczekiwane wyjście
ZEBRA Zebra zebra

Test 6

Nie uruchomiono
Wejście
Czy to: koniec? Nie! To dopiero początek.
Oczekiwane wyjście
Czy Nie To dopiero koniec początek to
Uruchom z własnymi danymi