Menu
CoddyTech

Task Scheduler

Trung bìnhTham lamHeapBămpython iconjava iconcpp iconc iconjs icon+10

Bạn có một chuỗi tasks gồm các chữ cái viết hoa, mỗi chữ cái tương ứng với một tác vụ, và một số nguyên n. Bộ xử lý chạy một tác vụ trong mỗi đơn vị thời gian theo thứ tự bạn chọn, hoặc nghỉ một đơn vị.

Hai lần chạy cùng một chữ cái phải cách nhau ít nhất n đơn vị: nếu một chữ cái chạy ở đơn vị t, sớm nhất chữ đó có thể chạy lại là ở đơn vị t+n+1. Hãy trả về số đơn vị thời gian ít nhất để chạy mọi tác vụ.

Hàm

leastInterval(tasks: string, n: integer) → integer
tasksstring
các nhiệm vụ, mỗi nhiệm vụ là một chữ cái viết hoa
ninteger
số đơn vị ít nhất nằm giữa hai lần xuất hiện của cùng một chữ cái
Trả vềinteger
số lượng đơn vị ít nhất, bao gồm cả những đơn vị không hoạt động

Ràng buộc

  • 1 ≤ tasks.length ≤ 104
  • tasks chỉ chứa các chữ cái in hoa từ A đến Z.
  • 0 ≤ n ≤ 100

Ví dụ

Đầu vào
tasks = "CACBAC"n = 2
Đầu ra
7
Giải thích
C chạy ba lần, với hai đơn vị giữa các lần chạy, nên riêng các lần chạy của C kéo dài 7 đơn vị. Thứ tự C A B C A, nghỉ, C lấp đầy các khoảng trống bằng A và B, đồng thời cần một đơn vị nghỉ: 7.
challenge icon

Câu hỏi mở rộng

Bạn cũng có thể trả về một lịch trình có độ dài ngắn nhất, dưới dạng chuỗi với một dấu . cho mỗi đơn vị thời gian nhàn rỗi không?

Đặt lại code
def leastInterval(tasks, n):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

tasks = "CACBAC"
n = 2

Đầu ra mong đợi

7