Utwórz program lub funkcję, która pobiera listę ciągów jako dane wejściowe i wyświetla najdłuższy ciąg, który jest podciągiem wszystkich ciągów wejściowych. Jeśli istnieje kilka podciągów o równej długości i już nie jest podciągających, wypisz jeden z nich.
- Może to oznaczać wyprowadzenie pustego ciągu.
- Jeśli istnieje kilka prawidłowych wyników, możesz wypisać dowolne z nich. Nie musisz podawać spójnych danych wyjściowych dla danych wejściowych, o ile dane wyjściowe są zawsze prawidłowe.
- Na wejściu zawsze będzie co najmniej jeden ciąg, ale może nie być niepustego ciągu.
- Wszystkie drukowane znaki ASCII mogą pojawić się na wejściu. Możesz założyć, że są to jedyne pojawiające się postacie.
- Możesz pobierać dane wejściowe lub generować dane wyjściowe dowolną z metod domyślnych .
- Standardowe luki są niedozwolone.
- To jest golf golfowy - im mniej bajtów kodu, tym lepiej.
Przypadki testowe:
[Inputs] -> [Valid outputs (choose one)]
["hello", "'ello"] -> ["ello"]
["very", "much", "different"] -> [""]
["empty", "", "STRING"] -> [""]
["identical", "identical"] -> ["identical"]
["string", "stRIng"] -> ["st", "ng"]
["this one", "is a substring of this one"] -> ["this one"]
["just one"] -> ["just one"]
["", "", ""] -> [""]
["many outputs", "stuptuo ynam"] -> ["m", "a", "n", "y", " ", "o", "u", "t", "p", "s"]
["many inputs", "any inputs", "ny iii", "yanny"] -> ["ny"]
["%%not&", "ju&#st", "[&]alpha_numeric"] -> ["&"]
undefined
oznacza to, że nie ma prawidłowego ciągu wyjściowego. Jeśli pusty ciąg (lub jakikolwiek inny ciąg) jest prawidłowym wyjściem, twierdzenie, że nie ma prawidłowego wyjścia, jest niepoprawne.