Wiersze kończące się określonym napisem

Zadanie 6 z 13 · rozdział 23Trudność: 1 z 3regexstringlinijki

Treść zadania

Wczytaj tekst wielowierszowy i końcówkę (np. da). Wypisz wszystkie wiersze tekstu, które kończą się podaną końcówką. Wiersz może mieć po końcówce znaki interpunkcyjne . , ; : ! ? oraz spacje — w dowolnej liczbie — i nadal się liczy.

Końcówka nie musi być całym słowem: wiersz Folgujmy paniom nie sobie, ma rada; kończy się na da. Wielkość liter ma znaczenie. Wiersze wypisuj w niezmienionej postaci (razem z interpunkcją).

Dane wejściowe

  • 1. linia: n — liczba wierszy tekstu
  • kolejne n linii: tekst
  • ostatnia linia: końcówka (same litery)

Dane wyjściowe

  • Pasujące wiersze, każdy w osobnej linii, w kolejności występowania w tekście,
  • Brak wierszy. — jeśli żaden wiersz nie pasuje.

Ograniczenia

  • $1 \le n \le 100$

Uwagi

  • Kotwica $ oznacza koniec napisu, np. wzorzec da[.,;:!? ]*$ pasuje do rada; i przysada., ale nie do dama. Pamiętaj o re.escape() dla wczytanej końcówki.

Przykład

Wejście
4
Folgujmy paniom nie sobie, ma rada;
Milujmy wiernie nie jest w nich przysada.
Godności trzeba nie za nic tu cnota,
Miłości pragną nie pragną tu złota.
da
Wyjście
Folgujmy paniom nie sobie, ma rada;
Milujmy wiernie nie jest w nich przysada.

Potrzebujesz teorii?

Zasady obowiązujące w rozdziale 23

Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout). Rozwiązuj je za pomocą wyrażeń regularnych (moduł re).
Każde zadanie jest osobnym, niezależnym programem.

Konwencje wspólne:

  • Każda wartość wejściowa znajduje się w osobnej linii — wczytuj je dokładnie w podanej kolejności.
  • Tekst wielowierszowy jest poprzedzony linią z liczbą jego wierszy n — wczytaj go, wywołując input() n razy.
  • Dla wartości logicznych wypisuj dokładnie Prawda lub Fałsz.
  • Wielkość liter ma znaczenie, chyba że zadanie mówi inaczej.
  • Słowo to najdłuższy ciąg znaków dopasowywanych przez \w, czyli liter (także polskich), cyfr i znaku podkreślenia _. Każdy inny znak — spacja, interpunkcja, myślnik — rozdziela słowa, np. biało-czerwona to dwa słowa: biało i czerwona. Granicę słowa w wyrażeniu regularnym oznacza \b.
  • Program nie wypisuje komunikatów typu „Podaj tekst:”. Tekst podany w input("…") jest ignorowany przez sprawdzarkę.

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
3
alpha end.
beta end!
gamma
end
Oczekiwane wyjście
alpha end.
beta end!

Test 2

Nie uruchomiono
Wejście
4
one.
two?
three
free!!!
ee
Oczekiwane wyjście
three
free!!!

Test 3

Nie uruchomiono
Wejście
3
Dom
Mój dom.
domek
dom
Oczekiwane wyjście
Mój dom.

Test 4

Nie uruchomiono
Wejście
2
da capo al fine
Wi-da, da-da
da
Oczekiwane wyjście
Wi-da, da-da

Test 5

Nie uruchomiono
Wejście
3
Czy to już koniec?!

KONIEC.
koniec
Oczekiwane wyjście
Czy to już koniec?!

Test 6

Nie uruchomiono
Wejście
1
rada; ale nie
rada
Oczekiwane wyjście
Brak wierszy.

Test 7

Nie uruchomiono
Wejście
2
Ala ma kota
kot ma Alę
pies
Oczekiwane wyjście
Brak wierszy.
Uruchom z własnymi danymi