Menu
CoddyTech

Task Scheduler

Ti viene data una stringa tasks composta da lettere maiuscole, una lettera per attività, e un intero n. Un processore esegue un'attività per unità di tempo, nell'ordine che scegli, oppure rimane inattivo per un'unità.

Tra due esecuzioni della stessa lettera devono trascorrere almeno n unità: una lettera eseguita all'unità t può essere eseguita di nuovo non prima dell'unità t+n+1. Restituisci il numero minimo di unità necessario per eseguire tutte le attività.

Funzione

leastInterval(tasks: string, n: integer) → integer
tasksstring
i compiti, una lettera maiuscola ciascuno
ninteger
il minor numero di unità tra due occorrenze della stessa lettera
Restituisceinteger
il minor numero di unità, comprese quelle inattive

Vincoli

  • 1 ≤ tasks.length ≤ 104
  • tasks contiene solo le lettere maiuscole da A a Z.
  • 0 ≤ n ≤ 100

Esempi

Input
tasks = "CACBAC"n = 2
Output
7
Spiegazione
C viene eseguito tre volte con due unità tra un'esecuzione e l'altra, quindi le sue sole esecuzioni coprono 7 unità. L'ordine C A B C A, inattivo, C riempie gli intervalli con A e B e richiede un'unità di inattività: 7.
challenge icon

Per approfondire

Puoi restituire anche una pianificazione di lunghezza minima, come stringa con un . per ogni unità inattiva?

Ripristina il codice
def leastInterval(tasks, n):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomenti

tasks = "CACBAC"
n = 2

Output atteso

7