Zainspirowany Narysuj oś czasu .
Biorąc pod uwagę oś czasu zdarzeń, podaj datę każdego zdarzenia.
Oś czasu zostanie podana w formularzu
2000
--AF-C-------E--D---B--
Gdzie pierwsza linia pokazuje znany punkt w czasie. Znany rok jest zawsze znakiem poniżej pierwszej cyfry znanego roku
Możesz założyć:
- Na samej osi czasu każda postać reprezentuje jeden rok.
- Zawsze będzie co najmniej jedno wydarzenie
- Wydarzenia nie muszą być w porządku
- Możesz założyć, że każda postać w przedziale od
A
i najdalsza postać jest obecna - Będzie maksymalnie 26 wydarzeń
- Znany punkt nie będzie miał wypełnienia po prawej stronie
- Liczby ujemne mogą występować zarówno w znanym punkcie, jak i na wyjściu
- Nie będziesz musiał obsługiwać liczb większych niż 2 ^ 32
- Nie będziesz musiał obsługiwać zakresów większych niż 2 ^ 8
- Możesz przyjmować dane jako małe litery zamiast wielkich
Powinieneś napisać program, który przyjmuje oś czasu w tej formie i wyświetla kluczowe daty w kolejności (A, B, C, D ...)
Możesz wydrukować w wygodnej formie, ale musisz wprowadzić dane w podanym formacie.
Przypadki testowe:
2000
--AF-C-------E--D---B--
[1998, 2016, 2001, 2012, 2009, 1999]
10
--C-AB--D
[9, 10, 7, 13]
0
--ABCDEFG--
[-3, -2, -1, 0, 1, 2, 3]
5
--ABCDEFG--
[-3, -2, -1, 0, 1, 2, 3]
Odpowiedzi:
Pyth, 16 bajtów
Pobiera dane jako małe litery zamiast wielkich.
źródło
05AB1E ,
1918 bajtówKod:
Wyjaśnienie:
Wypróbuj online!
Wykorzystuje kodowanie CP-1252 .
źródło
JavaScript (ES6), 72
Test
źródło
Bash + coreutils, 68
Wiersz 1 jest wprowadzany jako cytowana opcja wiersza polecenia, a wiersz 2 jest wprowadzany ze STDIN:
źródło
Perl, 58 + 1 = 59 bajtów
Awaria:
Wymaga
-n
i za darmo-M5.010
:źródło
Pyth, 22 bajty
Nie, nie napisałem tego przed opublikowaniem wyzwania.
Wyjaśnienie:
Wypróbuj tutaj
źródło
Python 3, 118
Człowieku, dziś jest dzień długich odpowiedzi w języku Python.
źródło
Poważnie, 40 bajtów
Wypróbuj online!
Wyjaśnienie, które przyjdzie później po dalszym golfie.
źródło
Perl,
80797167 bajtówDzięki @ dev-null za 12 bajtów!
źródło