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

Longest Valid Parentheses

لديك سلسلة نصية s تتكوّن فقط من المحرفين ( و). أوجد أطول سلسلة فرعية (مجموعة من المحارف المتتالية) تكون سليمة: يجب أن يكون لكل ( فيها محرف ) لاحق يغلقه، وأن تكون الأزواج متداخلة على نحو صحيح، كما في (()()). أعد طول هذه السلسلة الفرعية، أو 0 إذا لم يظهر حتى ().

الدالة

longestValidParentheses(s: string) → integer
sstring
سلسلة من الأحرف ( و )
تُرجعinteger
طول أطول سلسلة فرعية سليمة التكوين، أو 0 إذا لم توجد أيٌّ منها

القيود

  • 1 ≤ s.length ≤ 6 × 104
  • كل حرف في s هو ( أو ).

أمثلة

المدخلات
s = "()(())"
المخرجات
6
الشرح
السلسلة بأكملها سليمة التكوين: () يتبعها (()). قطعتان سليمتا التكوين جنبًا إلى جنب تشكّلان قطعة واحدة سليمة التكوين، لذا فالإجابة هي الأحرف الستة كلها.

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

challenge icon

سؤال إضافي

هل يمكنك أيضًا تحديد موضع بداية أطول سلسلة فرعية سليمة التكوين، واختيار الأسبق من اليسار عند وجود عدة سلاسل بالطول نفسه؟

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

الحالة 1

الحالة 2

الحالة 3

المدخلات

s = "()(())"

المتوقع

6