Menu
CoddyTech

Generate Parentheses

تكون سلسلة الأقواس سليمة التكوين عندما لا يتجاوز عدد ) عدد ( عند قراءتها من اليسار إلى اليمين، ويتساوى العددان في النهاية. لذا فإن (())() سليمة التكوين، بينما ())( ليست كذلك: فمحرفها الثالث يغلق زوجًا لم يُفتح قط.

أُعطِي عددًا صحيحًا n، وأعِد كل سلسلة سليمة التكوين تتكون من n قوس فتح وn قوس إغلاق، مرتبة ترتيبًا معجميًا، بحيث يأتي ( قبل ).

الدالة

generateParenthesis(n: integer) → string-array
ninteger
عدد أزواج الأقواس
تُرجعstring-array
كل سلسلة سليمة التكوين مكوّنة من n أزواج، بترتيب معجمي

القيود

  • 1 ≤ n ≤ 8
  • عند n = 8، يكون الجواب 1,430 سلسلة.

أمثلة

المدخلات
n = 3
المخرجات
["((()))", "(()())", "(())()", "()(())", "()()()"]
الشرح
تنتج ثلاثة أزواج خمس سلاسل سليمة التكوين. تفتح ((())) الأزواج الثلاثة كلها أولًا، لذا تأتي أولًا عند الترتيب؛ أما ()()() فتغلق كل زوج فورًا، لذا تأتي أخيرًا.
challenge icon

سؤال إضافي

هل يمكنك عدّ السلاسل سليمة التكوين المكوّنة من n أزواج دون توليدها؟

إعادة ضبط الشيفرة
def generateParenthesis(n):
    # اكتب الكود هنا

اختبار #1

اختبار #2

وسيط

n = 3

الإخراج المتوقع

["((()))", "(()())", "(())()", "()(())", "()()()"]