Menu
CoddyTech

Task Scheduler

Kamu mendapatkan string tasks yang terdiri dari huruf kapital, satu huruf untuk setiap tugas, dan sebuah bilangan bulat n. Sebuah prosesor menjalankan satu tugas per satuan waktu, dalam urutan apa pun yang kamu pilih, atau tetap diam selama satu satuan waktu.

Dua kali menjalankan huruf yang sama harus berjarak setidaknya n satuan waktu: huruf yang dijalankan pada satuan waktu t dapat dijalankan lagi paling cepat pada satuan waktu t+n+1. Kembalikan jumlah satuan waktu paling sedikit untuk menjalankan setiap tugas.

Fungsi

leastInterval(tasks: string, n: integer) → integer
tasksstring
tugas-tugas, masing-masing satu huruf kapital
ninteger
jumlah unit paling sedikit di antara dua rangkaian huruf yang sama
Mengembalikaninteger
jumlah unit paling sedikit, termasuk unit yang tidak aktif

Batasan

  • 1 ≤ tasks.length ≤ 104
  • tasks hanya berisi huruf kapital A sampai Z.
  • 0 ≤ n ≤ 100

Contoh

Input
tasks = "CACBAC"n = 2
Output
7
Penjelasan
C berjalan tiga kali dengan jeda dua unit di antara setiap kali berjalan, jadi ketiga kalinya berjalan mencakup 7 unit. Urutan C A B C A, jeda, C mengisi celah dengan A dan B, serta membutuhkan satu unit jeda: 7.
challenge icon

Pertanyaan lanjutan

Bisakah kamu juga mengembalikan satu jadwal dengan durasi paling singkat, sebagai string dengan . untuk setiap unit waktu kosong?

Reset kode
def leastInterval(tasks, n):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

tasks = "CACBAC"
n = 2

Output yang diharapkan

7