Menu
CoddyTech

Task Scheduler

Дана строка tasks из заглавных букв, по одной букве на задачу, и целое число n. Процессор выполняет одну задачу за единицу времени в любом выбранном тобой порядке или простаивает в течение единицы времени.

Между двумя запусками задач с одной и той же буквой должно пройти не менее n единиц времени: букву, запущенную в момент t, можно запустить снова не раньше момента t+n+1. Верни минимальное количество единиц времени, необходимое для выполнения всех задач.

Функция

leastInterval(tasks: string, n: integer) → integer
tasksstring
задания, по одной заглавной букве на каждое
ninteger
наименьшее количество единиц между двумя вхождениями одной и той же буквы
Возвращаетinteger
наименьшее количество единиц, включая бездействующие

Ограничения

  • 1 ≤ tasks.length ≤ 104
  • tasks содержит только заглавные буквы от A до Z.
  • 0 ≤ n ≤ 100

Примеры

Ввод
tasks = "CACBAC"n = 2
Вывод
7
Пояснение
C выполняется три раза с двумя единицами между запусками, поэтому только его запуски занимают 7 единиц. Порядок C A B C A, простой, C заполняет промежутки с помощью A и B и требует одну единицу простоя: 7.
challenge icon

Дополнительный вопрос

Можешь также вернуть одно расписание минимальной длины в виде строки, где для каждой единицы простоя используется .?

Сбросить код
def leastInterval(tasks, n):
    # Напишите код здесь

Тест #1

Тест #2

Тест #3

Аргументы

tasks = "CACBAC"
n = 2

Ожидаемый вывод

7