Мне действительно нравятся времена, которые следуют определенным образцам. В частности, мне нравятся времена, когда все цифры одинаковы или все цифры увеличиваются арифметически на единицу слева направо. Кроме того, я внутренне ненавижу, когда люди пишут письма в мое время, поэтому вся эта чепуха AM / PM для меня мертва. Итак, мои любимые времена:
0000 0123 1111 1234 2222 2345
Для моего душевного спокойствия мне нужно, чтобы вы написали мне одну программу, которая, учитывая текущее время в качестве входных данных, оба: (A) если это не одно из моих любимых времен, говорит мне обоим (i) сколько минут это прошло со времени моего последнего любимого времени, а также (ii) через сколько минут наступит мое следующее любимое время; и (B) , если он находится в настоящее время один из моих любимых времен, поставляет один "значение сигнала.
вход
Ваша программа должна принимать (любым методом: аргумент функции, аргумент stdin
командной строки и т. Д.) Текущее время в любом из следующих форматов:
Четырехзначное время в виде строки
Целое число, которое может быть дополнено нулями слева, чтобы сделать четырехзначное время в виде строки
Последовательность из четырех (или менее) целых чисел, упорядоченных таким образом, что первое целое число в последовательности является самой левой (значащей) цифрой на входе времени (например,
0951
может быть достоверно представлено как[0, 9, 5, 1]
или[9, 5, 1]
)- Представление в
0000
виде последовательности нулевой длины является приемлемым
- Представление в
В случае ввода строки он должен содержать только цифры, двоеточия или другие знаки препинания. Можно предположить, что входные данные всегда действительны в течение 24 часов:, HHMM
где 0 <= HH <= 23
и 0 <= MM <= 59
. Не обращайте внимания на возможность високосной секунды.
Выход
Ваша программа должна предоставить (функции возврата stdout
и т. Д. Все в порядке) либо (A), либо (B) , в зависимости от того, является ли введенное значение целевым временем.
Для):
Укажите два числовых значения в любом приемлемом формате, например:
Вывод из одной строки с подходящим разделителем
Последовательные целочисленные / строковые выходы, например,
bash
печать двух строк дляstdout
:49 34
Упорядоченные возвращаемые значения длины два, такие как список Python, массив C и т.д .:
[49, 34]
Значения могут прийти в любом порядке. Например, оба из следующих будут допустимыми выходами для ввода 1200
:
49 34
34 49
Однако порядок и разделитель должны быть одинаковыми для всех входных значений!
Для (B):
Произведите любой иначе недостижимый результат. Однако один и тот же результат должен быть получен для всех шести целевых периодов времени. Бесконечные циклы исключены.
Образцы входов / выходов
YAY!!!
используется здесь в качестве наглядного примера и не является предписывающим.
Input Output
------ --------
0000 YAY!!!
0020 20 63
0105 65 18
0122 82 1
0123 YAY!!!
0124 1 587
0852 449 139
1111 YAY!!!
1113 2 81
1200 49 34
1234 YAY!!!
1357 83 505
1759 325 263
1800 326 262
1801 327 261
2222 YAY!!!
2244 22 61
2345 YAY!!!
2351 6 9
Это код-гольф , поэтому выигрывает самый короткий код в байтах. Стандартные лазейки запрещены.