Usuń fragment napisu od pierwszego wystąpienia słowa klucz

Zadanie 9 z 13 · rozdział 23Trudność: 2 z 3regexstring

Treść zadania

Wczytaj tekst wielowierszowy i słowo klucz. Znajdź pierwsze wystąpienie słowa klucz w tekście jako całego słowa (zob. konwencje rozdziału; wielkość liter ma znaczenie). Usuń wszystko od początku tego wystąpienia do końca tekstu — także wszystkie dalsze wiersze — i wypisz to, co zostało.

Jeśli słowo klucz nie występuje w tekście, wypisz tekst bez zmian. Jeśli słowo klucz jest pierwszym słowem tekstu, nic nie wypisuj.

Dane wejściowe

  • 1. linia: n — liczba wierszy tekstu
  • kolejne n linii: tekst
  • ostatnia linia: słowo klucz (tylko litery i cyfry)

Dane wyjściowe

Pozostała część tekstu: wiersze przed wierszem z wystąpieniem słowa klucz w całości, a z tego wiersza — tylko fragment przed słowem klucz.

Ograniczenia

  • $1 \le n \le 100$

Uwagi

  • Złącz wiersze w jeden napis ("\n".join(...)) i znajdź wystąpienie przez re.search() — metoda start() dopasowania poda jego pozycję.
  • Sprawdzarka ignoruje spacje na końcu wierszy i puste wiersze na końcu wyjścia.

Przykład

Wejście
3
Ala ma kota, a kot ma Alę.
Kot lubi mleko i spać.
Mleko jest białe.
mleko
Wyjście
Ala ma kota, a kot ma Alę.
Kot lubi

Słowo Mleko w trzecim wierszu nie pasuje (wielka litera), a pierwsze mleko jest w drugim wierszu.

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
1
Hello key world
key
Oczekiwane wyjście
Hello

Test 2

Nie uruchomiono
Wejście
2
No keyword here
Second line
XYZ
Oczekiwane wyjście
No keyword here
Second line

Test 3

Nie uruchomiono
Wejście
1
klucze i klucz do domu
klucz
Oczekiwane wyjście
klucze i

Test 4

Nie uruchomiono
Wejście
3
Pierwszy wiersz
stop tutaj
Trzeci
stop
Oczekiwane wyjście
Pierwszy wiersz

Test 5

Nie uruchomiono
Wejście
2
STOP nie działa
ale stop tak, stop
stop
Oczekiwane wyjście
STOP nie działa
ale

Test 6

Nie uruchomiono
Wejście
2
keyword i key-value
dalej
key
Oczekiwane wyjście
keyword i

Test 7

Nie uruchomiono
Wejście
2
koniec
tego tekstu
koniec
Oczekiwane wyjście
(brak)
Uruchom z własnymi danymi