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