Инкрементальный формат игрового времени
Цель
В инкрементальных играх часто используется таймер обратного отсчета, в котором указываются дни, часы, минуты и секунды до завершения задачи. В зависимости от доступного места они могут быть отформатированы как:
2d 13h
23h 59m 48s
14m
3h 0m 0s
Цель этого кода гольф состоит в том, чтобы написать функцию или программу, которая выполняет это форматирование.
входные
- Общее количество секунд.
- Максимальное количество сегментов для вывода.
Выход
- Сегменты включают в себя:
- 0 недель
- 0 дней
- 0 часов
- 0 минут
- 0 секунд
- Каждый сегмент разделен одним пробелом.
- Отображаемые сегменты должны быть смежными. Например, вы не будете показывать часы и секунды без показа минут, даже если минут нет.
- Однозначные значения не имеют начальных нулей, хотя нулевое значение должно быть показано как
0
. - Значения округлены в меньшую сторону.
- Первый отображаемый сегмент является первым ненулевым значением.
Тестовые случаи
seconds segments output
0 1 0s
123 1 2m
123 2 2m 3s
123 3 2m 3s
82815 3 23h 0m 15s
307891 2 3d 13h
307891 4 3d 13h 31m 31s
604800 1 1w
604800 6 1w 0d 0h 0m 0s
выигрыш
Решение с самым низким количеством байтов за одну неделю получит «принятие».
Правки
- Уточнил, какой сегмент является первым, как показано в примерах.
- Добавлен тестовый пример 4 согласно запросу.
3d
? «Первый отображаемый сегмент - это первое ненулевое значение»
307891 1
?0w
или1w
.