Najdłuższy wspólny przedrostek
Treść zadania
Otrzymujesz n napisów. Znajdź ich najdłuższy wspólny przedrostek, czyli najdłuższy napis, od którego zaczynają się wszystkie podane napisy. Jeśli napisy nie mają wspólnego przedrostka (np. zaczynają się od różnych liter), wynikiem jest napis pusty — wypisz wtedy pustą linię.
Dane wejściowe
- 1. linia:
n— liczba napisów - kolejne
nlinii: napisy (każdy w osobnej linii)
Dane wyjściowe
Jedna linia: najdłuższy wspólny przedrostek (albo pusta linia).
Ograniczenia
1 ≤ n ≤ 100- każdy napis ma od 1 do 100 znaków
Uwagi
- Przy jednym napisie wynikiem jest cały ten napis.
- Wygodnie jest zacząć od pierwszego napisu jako kandydata i skracać go, porównując po kolei z każdym kolejnym napisem.
Przykład
3 Remolada Remux Remmy
Rem
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 25
Trudniejsze zadania na napisach: samodzielna zamiana i usuwanie fragmentów, przedrostki, kodowanie RLE, rotacje, szukanie najdłuższych powtórzeń i wspólnych fragmentów (programowanie dynamiczne) oraz sprawdzanie nawiasów za pomocą stosu. Spróbuj rozwiązywać je własnymi pętlami, bez gotowych metod w rodzaju replace czy startswith — właśnie o to w nich chodzi.
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 napis:”. Tekst podany w
input("…")jest ignorowany przez sprawdzarkę. - Każdy napis zajmuje jedną całą linię wejścia, razem ze spacjami — wczytuj go przez
input(), bezstrip()isplit(). - Wielkość liter ma znaczenie (
Aiato różne znaki), a spacja też jest znakiem. - Podnapis to ciągły fragment napisu, np.
kotjest podnapisemkotlet, aket— nie. - Pozycje znaków (indeksy) liczymy od
0, tak jak w Pythonie. - Odpowiedzi logiczne wypisuj jako
PrawdaalboFałsz(o ile zadanie nie mówi inaczej).
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 uruchomiono3 flower flow flight
fl
Test 2
Nie uruchomiono2 dog race
(brak)
Test 3
Nie uruchomiono1 samotny
samotny
Test 4
Nie uruchomiono3 internet inter interval
inter
Test 5
Nie uruchomiono4 abc abc abc abc
abc
Test 6
Nie uruchomiono2 Abc abc
(brak)
Test 7
Nie uruchomiono3 programowanie program programista
program
Test 8
Nie uruchomiono3 ab a abc
a
Test 9
Nie uruchomiono40 zaawansowane_programowanie_x zaawansowane_programowanie_yzxyz zaawansowane_programowanie_xyx zaawansowane_programowanie_xz zaawansowane_programowanie_yzz zaawansowane_programowanie_xx zaawansowane_programowanie_yyyzyy zaawansowane_programowanie_yzxy zaawansowane_programowanie_x zaawansowane_programowanie_xyxxx zaawansowane_programowanie_xyz zaawansowane_programowanie_ zaawansowane_programowanie_yyxz zaawansowane_programowanie_ zaawansowane_programowanie_ zaawansowane_programowanie_yxxz zaawansowane_programowanie_x zaawansowane_programowanie zaawansowane_programowanie_yxz zaawansowane_programowanie_zxzzzz zaawansowane_programowanie_y zaawansowane_programowanie_zzy zaawansowane_programowanie_zx zaawansowane_programowanie_zzy zaawansowane_programowanie_ zaawansowane_programowanie_zzyxx zaawansowane_programowanie_ zaawansowane_programowanie_z zaawansowane_programowanie_ zaawansowane_programowanie_x zaawansowane_programowanie_xyy zaawansowane_programowanie_y zaawansowane_programowanie_xyx zaawansowane_programowanie_yyxxxx zaawansowane_programowanie_ zaawansowane_programowanie_zzxz zaawansowane_programowanie_xx zaawansowane_programowanie_yyyyx zaawansowane_programowanie_ zaawansowane_programowanie_x
zaawansowane_programowanie