Questo è semplice: stampare un diagramma di Gantt ASCII .
Dati gli intervalli delle attività (ora di inizio - tuple dell'ora di fine), stampa una sequenza temporale di Gantt sotto forma di -caratteri per ogni durata dell'attività - ogni attività in una nuova riga.
Esempio
Supponiamo che i miei intervalli di attività siano 28->35, 34->40, 39->44, il Gantt sarà simile a questo:
-------
------
-----
specificazioni
- È possibile scrivere un programma completo, una funzione con nome o una funzione anonima.
- Il tuo programma / funzione dovrebbe accettare le attività tramite STDIN o come argomenti .
- Ogni attività dovrebbe essere rappresentata come una stringa di
start->enddovestarteendsono numeri interi . Le attività sono separate da spazi o virgole. In alternativa , puoi ottenerlo come Tupla di numeri interi o come matrice / raccolta di 2 numeri interi. (Ad esempio, in JavaScript puoi ottenerlo come[start,end]- questo è permesso). - Qualsiasi numero non negativo di attività (argomenti) dovrebbe essere supportato.
Per chiarire, un singolo argomento della raccolta di attività non è consentito. È possibile analizzare un singolo argomento stringa o supportare argomenti zero o più attività. Dove task è una tupla o una raccolta di dimensioni 2.- Si può presumere che verrà fornito solo un input valido. Ciò significa che ogni attività ha una durata positiva.
- Il valore restituito non ha importanza, il codice deve stampare la sequenza temporale su STDOUT.
- Output: per attività,
startspazi seguiti da(end-start)trattini e a\n. - Inutile dire che le righe di output devono essere ordinate in modo corrispondente all'ordine di input (attività).
- Gli spazi finali prima di
\nsono consentiti, se ciò ti aiuta.
Casi test
Input:
(empty)
Output:
(empty)
Input:
0->7,5->6,3->6
Output:
-------
-
---
Input:
5->20,5->20,2->10,15->19
Output:
---------------
---------------
--------
----
vincente
- Questo è code-golf quindi vince la lunghezza minima del codice (in byte).
- Tradizionalmente, il tie breaker è post precedente.
- "Le scappatoie standard non sono più divertenti".
-----
MODIFICARE
Come molti di voi hanno capito che è consentito avere un singolo argomento di raccolta di attività, e poiché non c'è molta differenza tra questo e il requisito varargs originale , ora è permesso avere un singolo argomento di raccolta, se non si desidera utilizzare l'opzione varargs, o nel caso in cui la tua lingua non supporti varargs.
argumentsall'interno della funzione, ma non si può presumere che si arguments[0]tratti di una matrice di attività.
To make it clear...) non è affatto chiaro.