Menu
CoddyTech

Task Scheduler

Du erhältst die Zeichenfolge tasks aus Großbuchstaben, wobei jeder Buchstabe für eine Aufgabe steht, und eine ganze Zahl n. Ein Prozessor führt pro Zeiteinheit eine Aufgabe in beliebiger Reihenfolge deiner Wahl aus oder bleibt eine Zeiteinheit untätig.

Zwischen zwei Ausführungen desselben Buchstabens müssen mindestens n Zeiteinheiten liegen: Ein Buchstabe, der in Zeiteinheit t ausgeführt wird, kann frühestens in Zeiteinheit t+n+1 erneut ausgeführt werden. Gib die geringste Anzahl an Zeiteinheiten zurück, in der alle Aufgaben ausgeführt werden.

Funktion

leastInterval(tasks: string, n: integer) → integer
tasksstring
die Aufgaben, jeweils ein Großbuchstabe
ninteger
die geringste Anzahl von Einheiten zwischen zwei Vorkommen desselben Buchstabens
Gibt zurückinteger
die geringstmögliche Anzahl an Einheiten, einschließlich untätiger Einheiten

Einschränkungen

  • 1 ≤ tasks.length ≤ 104
  • tasks enthält nur die Großbuchstaben A bis Z.
  • 0 ≤ n ≤ 100

Beispiele

Eingabe
tasks = "CACBAC"n = 2
Ausgabe
7
Erklärung
C läuft dreimal mit zwei Einheiten zwischen den Läufen, daher umfassen allein seine Läufe 7 Einheiten. Die Reihenfolge C A B C A, Leerlauf, C füllt die Lücken mit A und B und benötigt eine Leerlaufeinheit: 7.
challenge icon

Weiterführende Frage

Kannst du auch einen Zeitplan kürzester Länge als Zeichenfolge zurückgeben, mit einem . für jede Leerlaufeinheit?

Code zurücksetzen
def leastInterval(tasks, n):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

tasks = "CACBAC"
n = 2

Erwartete Ausgabe

7