Dies ist ganz einfach: Drucken Sie ein ASCII- Gantt-Diagramm .
Geben Sie für die angegebenen Aufgabenbereiche (Startzeit - Endzeit-Tupel) eine Gantt-Zeitleiste in Form von -
Zeichen für jede Aufgabendauer aus - jede Aufgabe in einer neuen Zeile.
Beispiel
Angenommen, meine Aufgabenbereiche sind 28->35, 34->40, 39->44
, sieht der Gantt folgendermaßen aus:
-------
------
-----
Spezifikationen
- Sie können ein vollständiges Programm, eine benannte Funktion oder eine anonyme Funktion schreiben.
- Ihr Programm / Ihre Funktion sollte die Aufgaben über STDIN oder als Argumente annehmen .
- Jede Aufgabe sollte als eine Zeichenfolge von
start->end
wherestart
undend
are Integers dargestellt werden . Aufgaben werden durch Leerzeichen oder Kommas getrennt. Alternativ können Sie es als Tupel von Ganzzahlen oder als Array / Sammlung von 2 Ganzzahlen erhalten. (Zum Beispiel können Sie es in JavaScript wie[start,end]
folgt abrufen - dies ist zulässig). - Jede nicht negative Anzahl von Aufgaben (Argumenten) sollte unterstützt werden.
Zur Verdeutlichung ist ein einzelnes Argument der Auflistung von Aufgaben nicht zulässig. Sie können entweder ein einzelnes Zeichenfolgenargument analysieren oder null oder mehr Aufgabenargumente unterstützen. Wo Aufgabe ist ein Tupel oder eine Sammlung von Größe 2.- Sie können davon ausgehen, dass nur gültige Eingaben gemacht werden. Das heißt, jede Aufgabe hat eine positive Dauer.
- Rückgabewert spielt keine Rolle, Ihr Code muss die Timeline auf STDOUT drucken.
- Ausgabe: pro Aufgabe
start
Leerzeichen, gefolgt von(end-start)
Bindestrichen und a\n
. - Es ist unnötig zu erwähnen, dass die Ausgabezeilen entsprechend der Reihenfolge der Eingabe (Aufgaben) angeordnet werden sollten.
- Leerzeichen vor dem
\n
sind erlaubt, wenn das hilft.
Testfälle
Input:
(empty)
Output:
(empty)
Input:
0->7,5->6,3->6
Output:
-------
-
---
Input:
5->20,5->20,2->10,15->19
Output:
---------------
---------------
--------
----
Gewinnen
- Dies ist Code-Golf, so dass die geringste Codelänge (in Bytes) gewinnt.
- Traditionell ist Tie Breaker ein früherer Posten.
- "Standardlücken sind nicht mehr lustig".
-----
BEARBEITEN
Wie viele von Ihnen verstanden haben, ist es zulässig, ein einziges Argument für die Auflistung von Tasks zu verwenden, und da es keinen großen Unterschied zur ursprünglichen Varg- Anforderung gibt, ist es jetzt zulässig, ein einziges Argument für die Auflistung zu verwenden, wenn Sie es nicht verwenden möchten die varargs Option, oder falls Ihre Sprache varargs nicht unterstützt.
arguments
innerhalb der Funktion iterieren , aber Sie können nicht davon ausgehen, dass arguments[0]
es sich um ein Array von Aufgaben handelt.
To make it clear...
) ist überhaupt nicht klar.