Это просто: распечатайте диаграмму Гантта ASCII .
Для заданных диапазонов задач (время начала - время окончания), выведите временную шкалу Ганта в виде -
символов для каждой продолжительности задачи - каждая задача в новой строке.
пример
Скажем, мои задачи находятся в диапазоне 28->35, 34->40, 39->44
, Гантт будет выглядеть так:
-------
------
-----
Характеристики
- Вы можете написать полную программу, именованную функцию или анонимную функцию.
- Ваша программа / функция должна принимать задачи через STDIN или в качестве аргументов .
- Каждая задача должна быть представлена в виде строки,
start->end
гдеstart
иend
являются целыми числами . Задачи разделяются пробелами или запятыми. Кроме того , вы можете получить его как кортеж целых чисел или как массив / набор из 2 целых чисел. (Например, в JavaScript вы можете получить это как[start,end]
- это разрешено). - Любое неотрицательное количество задач (аргументов) должно поддерживаться.
Чтобы было понятно, один аргумент набора задач не допускается. Вы можете анализировать один строковый аргумент или поддерживать ноль или более аргументов задач. Где задача - это кортеж или коллекция размером 2.- Вы можете предполагать, что будет дан только верный ввод. Это означает, что каждая задача имеет положительную продолжительность.
- Возвращаемое значение не имеет значения, ваш код должен печатать временную шкалу на STDOUT.
- Вывод: за задачу,
start
пробелы, за которыми следуют(end-start)
тире и a\n
. - Нет необходимости говорить, что выходные строки должны быть упорядочены в соответствии с порядком ввода (задач).
- Замыкающие пробелы перед
\n
разрешены, если это вам помогает.
Контрольные примеры
Input:
(empty)
Output:
(empty)
Input:
0->7,5->6,3->6
Output:
-------
-
---
Input:
5->20,5->20,2->10,15->19
Output:
---------------
---------------
--------
----
выигрыш
- Это код-гольф, поэтому выигрывает наименьшая длина кода (в байтах).
- Традиционно прерыватель связи - это более ранний пост.
- «Стандартные лазейки больше не смешны».
-----
РЕДАКТИРОВАТЬ
Как многие из вас поняли, что разрешено иметь один аргумент коллекции задач, и, поскольку между этим и исходным требованием varargs нет особых различий , теперь разрешено иметь один аргумент коллекции, если вы не хотите использовать опция varargs, или если ваш язык не поддерживает varargs.
arguments
внутри функции, но можете не предполагать, что arguments[0]
это массив задач.
To make it clear...
) не совсем понятно.