Спочатку опублікував (і видалив) автор @Tlink , який, швидше за все, був натхненником цього питання StackOverflow .
Оскільки це було соромно, що його видалили, оскільки це загалом здавалося гарним викликом, я зрозумів, що переставлю його з належним форматуванням та правилами. (Я намагався зв’язатися з @Tlink і отримати його дозвіл на його публікацію, але він більше не відповідає, тому я вирішив опублікувати його зараз.)
Введення: Шість цифр.
Вихід: або перший, або останній дійсний час у 24-годинному форматі ( 00:00:00
через 23:59:59
). (Ви можете самостійно вибрати, чи буде ви перший або останній дійсний час.)
Приклад:
Якщо дані є 1,8,3,2,6,4
, можна створити наступні рази:
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
Таким чином, ми виводимо 12:36:48
або 23:48:16
в цьому випадку, або першим / останнім відповідно.
Правила виклику:
- Вкажіть, чи виводить у відповіді перший чи останній дійсний час.
- Введення / виведення гнучко. Вхід може бути шістьма окремими цілими числами; рядок, що містить шість цифр; цілий список / масив; єдине (можливо восьмеричне) число; і т.д. Вихід може бути правильно упорядкованим списком / масивом цифр; a Рядок у форматі
HH:mm:ss
/HHmmss
/HH mm ss
; кожна цифра, надрукована роздільником нового рядка; твій дзвінок. - Вам дозволяється брати цифри в будь-якому бажаному вами порядку, тому вони вже можуть бути відсортовані від найнижчого до найвищого або навпаки.
- Якщо не можна створити дійсний час із заданими цифрами (тобто
2,5,5,5,5,5
), уточнюйте будь-який потрібний вам спосіб. Може повернутисяnull
/false
;"Not possible"
; збої з помилкою; і т.д. (Ви не можете вивести недійсний час, наприклад55:55:52
, або інший дійсний час, як00:00:00
. - Вам не дозволяється виводити всі можливі дійсні часи. Виводити / повертати слід лише найраніші / останні.
24
протягом годин (тобто24:00:00
) або60
хвилин / секунд (тобто00:60:60
) не є дійсними. Діапазони - це[00-23]
години,[00-59]
хвилини і секунди.
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам коду-гольфу відштовхувати вас від публікації відповідей з не кодовими гольф-мовами. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Стандартні правила застосовуються до вашої відповіді, тому вам дозволяється використовувати STDIN / STDOUT, функції / метод із відповідними параметрами та повним програмами типу "повернення". Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також, будь ласка, додайте пояснення, якщо це необхідно.
Тестові приклади:
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
б дійсним, враховуючи, що протягом цієї хвилини стався стрибок секунди?
60
для хвилин і секунд не вірно . Діапазони [00-23]
, [00-59]
і [00-59]
. Пояснимо це у виклику.
23:48:16
припустимий висновок для прикладу?