これは簡単です:ASCII ガントチャートを印刷します。
指定されたタスクの範囲(開始時間-終了時間のタプル)で、-
各タスク期間(新しいタスクの各タスク)の文字の形式でガントタイムラインを印刷します。
例
私のタスクの範囲は28->35, 34->40, 39->44
であるとすると、ガントは次のようになります。
-------
------
-----
仕様書
- 完全なプログラム、名前付き関数、または匿名関数を作成できます。
- プログラム/関数は、STDINを介して、または引数としてタスクを受け入れる必要があります。
- 各タスクは、
start->end
wherestart
およびend
are Integersの文字列として表される必要があります。タスクはスペースまたはカンマで区切られます。または、整数のタプル、または2つの整数の配列/コレクションとして取得することもできます。(たとえば、JavaScriptでは次のように取得できます[start,end]
-これは許可されています)。 - 負でない数のタスク(引数)をサポートする必要があります。
明確にするために、タスクコレクションの単一の引数は許可されていません。単一の文字列引数を解析するか、0個以上のタスク引数をサポートできます。taskはサイズ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:
---------------
---------------
--------
----
勝ち
- これはcode-golfであるため、最小のコード長(バイト単位)が優先されます。
- 従来、タイブレーカーは以前の投稿です。
- 「標準的な抜け穴はもはや面白くない」。
-----
編集
多くの人が単一のタスクコレクション引数を持つことが許可されていることを理解しており、それと元のvarargs要件の 間には大きな違いがないため、使用しない場合は単一のコレクション引数を持つことが許可されていますvarargsオプション、または言語がvarargsをサポートしていない場合。
arguments
関数内で反復できますが、それがarguments[0]
タスクの配列であると想定することはできません。
To make it clear...
)はまったく明確ではありません。