Menu
CoddyTech

Task Scheduler

大文字のアルファベットで構成される文字列 tasks と、整数 n が与えられます。プロセッサは、任意の順序で1単位時間に1つのタスクを実行するか、1単位時間アイドル状態になります。

同じ文字の2回の実行の間には、少なくとも n 単位時間が必要です。単位時間 t に実行された文字は、最短で単位時間 t+n+1 に再び実行できます。すべてのタスクを実行するために必要な最小の単位時間数を返してください。

関数

leastInterval(tasks: string, n: integer) → integer
tasksstring
各タスクに大文字を1文字ずつ
ninteger
同じ文字の2つの連続区間の間にある最小の単位数
戻り値integer
アイドル状態のものも含めた、単位の最小数

制約

  • 1 ≤ tasks.length ≤ 104
  • tasksには、大文字の英字AからZのみが含まれます。
  • 0 ≤ n ≤ 100

例

入力
tasks = "CACBAC"n = 2
出力
7
説明
C は 3 回実行され、実行間に 2 単位ずつあるため、C の実行だけで 7 単位にわたります。C A B C A の順序では、アイドル時間を挟んで、A と B で隙間を埋め、アイドル時間が 1 単位必要です。7
challenge icon

発展問題

最短のスケジュールも1つ、アイドル単位ごとに.を含む文字列として返せますか?

コードをリセット
def leastInterval(tasks, n):
    # ここにコードを書いてください

テスト #1

テスト #2

テスト #3

引数

tasks = "CACBAC"
n = 2

期待される出力

7