Menu
CoddyTech

Permutation in String

تستخدم تبديلة السلسلة الحروف نفسها بأي ترتيب، ويظهر كل حرف فيها بعدد مرات ظهوره في السلسلة الأصلية: tar وrat وart تبديلات بعضها لبعض. لديك سلسلتان s1 وs2 مكوّنتان من أحرف إنجليزية صغيرة. أعد true إذا ظهرت أي تبديلة من s1 في s2 كسلسلة فرعية (تتابع من الأحرف المتجاورة)، وأعد false خلاف ذلك.

الدالة

checkInclusion(s1: string, s2: string) → boolean
s1string
الحروف المطلوب إعادة ترتيبها
s2string
السلسلة النصية التي سيتم البحث فيها
تُرجعboolean
صحيح إذا كانت سلسلة فرعية من s2 إعادة ترتيب لـ s1

القيود

  • 1 ≤ s1.length ≤ 2 × 104
  • 1 ≤ s2.length ≤ 5 × 104
  • s1 وs2 يحتويان على أحرف إنجليزية صغيرة فقط (a إلى z).
  • s1 قد تكون أطول من s2.

أمثلة

المدخلات
s1 = "tar"s2 = "smartphone"
المخرجات
true
الشرح
السلسلة الفرعية art عند الفهارس من 2 إلى 4 في smartphone تحتوي على حرف a واحد، وحرف r واحد، وحرف t واحد، وهي الأحرف نفسها الموجودة في tar.
challenge icon

سؤال إضافي

هل يمكنك إرجاع جميع الفهارس في s2 التي يبدأ عندها تبديل لـ s1، مع الحفاظ على زمن O(m + n)؟

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

اختبار #1

اختبار #2

اختبار #3

الوسائط

s1 = "tar"
s2 = "smartphone"

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

true