Menu
CoddyTech

Task Scheduler

Recibes una cadena tasks de letras mayúsculas, una letra por tarea, y un entero n. Un procesador ejecuta una tarea por unidad de tiempo, en el orden que elijas, o permanece inactivo durante una unidad.

Entre dos ejecuciones de la misma letra debe haber al menos n unidades: una letra que se ejecuta en la unidad t puede volver a ejecutarse como pronto en la unidad t+n+1. Devuelve el menor número de unidades que permite ejecutar todas las tareas.

Función

leastInterval(tasks: string, n: integer) → integer
tasksstring
las tareas, una letra mayúscula cada una
ninteger
el menor número de unidades entre dos apariciones de la misma letra
Devuelveinteger
el menor número de unidades, incluidas las inactivas

Restricciones

  • 1 ≤ tasks.length ≤ 104
  • tasks contiene solo las letras mayúsculas de la A a la Z.
  • 0 ≤ n ≤ 100

Ejemplos

Entrada
tasks = "CACBAC"n = 2
Salida
7
Explicación
C se ejecuta tres veces con dos unidades entre ejecuciones, así que sus ejecuciones abarcan 7 unidades. El orden C A B C A, con un tiempo inactivo, llena los huecos con A y B y necesita una unidad de tiempo inactivo: 7.
challenge icon

Para ir más allá

¿También puedes devolver un cronograma de la menor duración, como una cadena con un . por cada unidad inactiva?

Restablecer código
def leastInterval(tasks, n):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumentos

tasks = "CACBAC"
n = 2

Salida Esperada

7