Menu
CoddyTech

Task Scheduler

Sana, her görev için bir harf olmak üzere büyük harflerden oluşan bir tasks dizgesi ve bir n tamsayısı veriliyor. Bir işlemci, seçtiğin herhangi bir sırayla zaman birimi başına bir görev çalıştırır veya bir zaman birimi boyunca boşta kalır.

Aynı harfin iki çalıştırılması arasında en az n zaman birimi bulunmalıdır: t zaman biriminde çalışan bir harf, en erken t+n+1 zaman biriminde yeniden çalışabilir. Tüm görevleri çalıştırmak için gereken en az zaman birimi sayısını döndür.

Fonksiyon

leastInterval(tasks: string, n: integer) → integer
tasksstring
görevler, her biri bir büyük harf
ninteger
aynı harfin iki tekrar dizisi arasındaki en az birim sayısı
Döndürürinteger
boştakiler de dâhil olmak üzere en az sayıda birim

Kısıtlar

  • 1 ≤ tasks.length ≤ 104
  • tasks yalnızca A ile Z arasındaki büyük harfleri içerir.
  • 0 ≤ n ≤ 100

Örnekler

Girdi
tasks = "CACBAC"n = 2
Çıktı
7
Açıklama
C iki çalışma arasında iki birim olacak şekilde üç kez çalışır; bu nedenle yalnızca C'nin çalışmaları toplam 7 birim sürer. C A B C A, boşta, C sıralaması boşlukları A ve B ile doldurur ve bir boşta birim gerektirir: 7.
challenge icon

Ek soru

Her boşta geçen birim için bir . içeren bir dize olarak, en kısa uzunluğa sahip bir çizelgeyi de döndürebilir misin?

Kodu sıfırla
def leastInterval(tasks, n):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argümanlar

tasks = "CACBAC"
n = 2

Beklenen Çıktı

7