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

Minimum Window Substring

لديك سلسلتان نصيتان، s وt. أوجد أقصر مقطع فرعي من s، أي سلسلة من المحارف المتتالية، يحتوي على كل محرف في t، مع احتساب التكرارات: إذا احتوى t على حرف مرتين، فيجب أن يحتوي المقطع الفرعي عليه مرتين على الأقل. لا يهم الترتيب، ويمكن للمقطع الفرعي أن يحتوي على محارف أخرى أيضًا.

إذا كان هناك عدة مقاطع فرعية لها أقصر طول، فأعِد المقطع الواقع إلى اليسار. إذا لم يحتوِ أي مقطع فرعي من s على جميع محارف t، فأعِد سلسلة نصية فارغة.

الدالة

minWindow(s: string, t: string) → string
sstring
السلسلة النصية المراد البحث فيها
tstring
الأحرف التي يجب أن تحتوي عليها النافذة، مع التكرارات
تُرجعstring
أقصر سلسلة فرعية من s تحتوي على جميع أحرف t، وعند تساوي الطول تكون الأسبق من اليسار، أو سلسلة فارغة

القيود

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s وt يحتويان على أحرف إنجليزية فقط. الأحرف الكبيرة والصغيرة أحرف مختلفة.
  • عندما تكون هناك عدة سلاسل فرعية هي الأقصر، تكون الإجابة هي الأسبق من اليسار؛ وعندما لا توجد أي سلسلة، تكون الإجابة "".

أمثلة

المدخلات
s = "mappingtheplan"t = "nap"
المخرجات
"plan"
الشرح
عند القراءة من اليسار، أول نافذة تحتوي على n وa وp هي appin، وطولها خمسة أحرف. أما plan في النهاية فتحتوي على الأحرف الثلاثة كلها في أربعة أحرف، ولا توجد أي سلسلة من ثلاثة أحرف تفعل ذلك.

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

challenge icon

سؤال إضافي

عندما تستخدم t بضعة أحرف فقط وتكون s طويلة، فإن معظم s لا يمكن أن يكون ذا صلة أبدًا. هل يمكنك جعل النافذة تقفز فقط بين المواضع التي تحتوي على حرف من t؟

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

الحالة 1

الحالة 2

الحالة 3

المدخلات

s = "mappingtheplan"
t = "nap"

المتوقع

"plan"