Menu
CoddyTech

Minimum Window Substring

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

إذا كانت هناك عدة سلاسل فرعية لها أقصر طول، فأعِد السلسلة الواقعة إلى أقصى اليسار. إذا لم تحتوِ أي سلسلة فرعية على كل محارف 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 عليها جميعًا في أربعة أحرف، ولا توجد سلسلة من ثلاثة أحرف تحتوي عليها.
challenge icon

سؤال إضافي

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

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

اختبار #1

اختبار #2

اختبار #3

الوسائط

s = "mappingtheplan"
t = "nap"

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

"plan"