Menu
CoddyTech
flag Ar iconالعربيةdown icon

Generate Parentheses

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

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

الدالة

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

القيود

  • 1 ≤ n ≤ 8
  • بالنسبة إلى n = 8، يحتوي الحل على 1,430 سلسلة.

أمثلة

المدخلات
n = 3
المخرجات
["((()))", "(()())", "(())()", "()(())", "()()()"]
الشرح
يمكن ترتيب ثلاثة أزواج بخمس طرق سليمة التكوين. تفتح ((())) الأزواج الثلاثة قبل إغلاق أيٍّ منها، وبما أن ( يأتي أولًا في الترتيب، فإنه يتصدر القائمة؛ أما ()()() فيغلق كل زوج فورًا، ويأتي في النهاية.

lock icon+10 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

هل يمكنك حساب عدد السلاسل ذات الأقواس المتوازنة لـ n من الأزواج دون توليدها؟

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

الحالة 1

الحالة 2

المدخلات

n = 3

المتوقع

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