Valid Parentheses
تكون سلسلة الأقواس متوازنة عندما يُغلَق كل قوس فتح بقوس من النوع نفسه، وتكون الأزواج متداخلة بعضها داخل بعض بدلًا من أن تتداخل فيما بينها. هناك ثلاثة أنواع: الأقواس المستديرة ()، والمربعة []، والمعقوفة {}.
على سبيل المثال، {[()()]} متوازنة: يُغلَق كل زوج داخل الزوج الذي يحيط به. لكن {(}) ليست متوازنة: يُغلَق القوس المعقوف بينما لا يزال القوس المستدير الذي فُتح بعده مفتوحًا. وسلسلة مثل (( ليست متوازنة أيضًا، لأنه لا يوجد ما يُغلِق القوسين المفتوحين.
اكتب دالة باسم isValid تأخذ سلسلة نصية s تتكوّن فقط من الأحرف ( و) و[ و] و{ و}، وتُرجع true عندما تكون الأقواس متوازنة، وfalse خلاف ذلك.
يعني التوازن أن كل قوس إغلاق يطابق أحدث قوس فتح لا يزال مفتوحًا، وأنهما من النوع نفسه، وألا يبقى أي قوس فتح مفتوحًا في النهاية.
القيود: 1 ≤ s.length ≤ 10^4.
الدالة
- arg1string
- تُرجعboolean
أمثلة
- المدخلات
- arg1 = "[]{}()"
- المخرجات
- true
- المدخلات
- arg1 = "{[()()]}"
- المخرجات
- true
- المدخلات
- arg1 = "{(})"
- المخرجات
- false
+13 اختبارات مخفية عند الإرسال
تلميحات
افتحها واحدًا تلو الآخر. كل تلميح يكشف أكثر قليلًا.
اقرأ السلسلة من اليسار إلى اليمين. عندما يصل قوس إغلاق، أيُّ قوس فتح يُسمح له بإغلاقه؟
يمكنه إغلاق قوس الفتح الذي فُتح مؤخرًا فقط وما زال مفتوحًا. آخر ما فُتح، أول ما يُغلق: هذا هو بالضبط الترتيب الذي يحافظ عليه المكدس.
ادفع كل قوس فتح إلى المكدس. عند الوصول إلى قوس إغلاق، يجب ألا يكون المكدس فارغًا، ويجب أن يكون العنصر الموجود في أعلاه من النوع نفسه؛ أزِله وتابع. عند انتهاء السلسلة، تكون متوازنة فقط إذا كان المكدس فارغًا.
شرح كامل لهذه المسألة قادم قريبًا.
مسائل مشابهة
مسائل تعتمد على الأفكار نفسها. حلّ اثنتين أو ثلاث منها يثبّت النمط.
Python
def isValid(s):
# اكتب الكود هناالحالة 1
الحالة 2
الحالة 3
المدخلات
arg1 = "[]{}()"المتوقع
true