Pierwotnie opublikowany (i usunięty) przez @Tlink , który najprawdopodobniej został zainspirowany tym pytaniem StackOverflow .
Ponieważ szkoda, że został usunięty, ponieważ ogólnie wydawało się to sporym wyzwaniem, pomyślałem, że opublikuję go z odpowiednim formatowaniem i regułami. (Próbowałem skontaktować się z @Tlink i uzyskać jego zgodę na opublikowanie go, ale on nie odpowiada już, dlatego postanowiłem to teraz opublikować.)
Wprowadzanie: sześć cyfr.
Dane wyjściowe: pierwszy lub ostatni prawidłowy czas w formacie 24-godzinnym ( 00:00:00
do 23:59:59
). (Możesz sam wybrać, czy wyprowadzasz pierwszy, czy ostatni prawidłowy czas.)
Przykład:
Gdy dane wejściowe są 1,8,3,2,6,4
, można utworzyć następujące czasy:
12:36:48 12:38:46 12:46:38 12:48:36
13:26:48 13:28:46 13:46:28 13:48:26
14:26:38 14:28:36 14:36:28 14:38:26
16:23:48 16:24:38 16:28:34 16:28:43
16:32:48 16:34:28 16:38:24 16:38:42
16:42:38 16:43:28 16:48:23 16:48:32
18:23:46 18:24:36 18:26:34 18:26:43
18:32:46 18:34:26 18:36:24 18:36:42
18:42:36 18:43:26 18:46:23 18:46:32
21:36:48 21:38:46 21:46:38 21:48:36
23:16:48 23:48:16
Więc wyprowadzimy jeden 12:36:48
lub 23:48:16
w tym przypadku, odpowiednio jako pierwszy / ostatni.
Zasady konkursu:
- Podaj, czy podajesz w odpowiedzi pierwszy lub ostatni prawidłowy czas.
- I / O jest elastyczny. Wejściem może być sześć oddzielnych liczb całkowitych; ciąg zawierający sześć cyfr; lista / tablica liczb całkowitych; pojedyncza (ewentualnie ósemkowa) liczba; itp. Wyjściem może być poprawnie uporządkowana lista / tablica cyfr; ciąg znaków w formacie
HH:mm:ss
/HHmmss
/HH mm ss
; każda cyfra drukowana z separatorem nowej linii; itp. Twoje połączenie. - Dozwolone jest przyjmowanie cyfr w dowolnej kolejności, dzięki czemu można je już sortować od najniższej do najwyższej lub odwrotnie.
- Jeśli nie można utworzyć prawidłowego czasu z podanymi cyframi (tj.
2,5,5,5,5,5
), Zaznacz to w dowolny sposób. Może zwrócićnull
/false
;"Not possible"
; awaria z błędem; itp. (Nie można podać niepoprawnego czasu, takiego jak55:55:52
lub innego prawidłowego czasu, takiego jak00:00:00
.) Podaj, jak obsługuje dane wejściowe, dla których nie można utworzyć prawidłowego czasu. - Nie możesz podać wszystkich możliwych prawidłowych czasów. Tylko najwcześniejsze / najnowsze powinny być wyprowadzone / zwrócone.
24
godziny (tj.24:00:00
) lub60
minuty / sekundy (tj.00:60:60
) są nieprawidłowe. Zakresy dotyczą[00-23]
godzin oraz[00-59]
minut i sekund.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i zwracanymi typami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- W razie potrzeby dodaj również wyjaśnienie.
Przypadki testowe:
Input: Earliest output: Latest output:
1,2,3,4,6,8 12:36:48 23:48:16
2,5,5,5,5,5 None possible None possible
0,0,0,1,1,1 00:01:11 11:10:00
1,1,2,2,3,3 11:22:33 23:32:11
9,9,9,9,9,9 None possible None possible
2,3,5,5,9,9 23:59:59 23:59:59
1,2,3,4,5,6 12:34:56 23:56:41
0,0,0,0,0,0 00:00:00 00:00:00
1,5,5,8,8,8 18:58:58 18:58:58
1,5,5,5,8,8 15:58:58 18:58:55
1,1,1,8,8,8 18:18:18 18:18:18
06:08:60
byłby ważny, biorąc pod uwagę, że w tej minucie nastąpił drugi skok?
60
minuty i sekundy są nieprawidłowe. Zakresy są [00-23]
, [00-59]
i [00-59]
. Wyjaśni to w wyzwaniu.
23:48:16
jest poprawne wyjście dla tego przykładu?