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

Longest Common Subsequence

لديك سلسلتان، text1 وtext2. يحافظ التسلسل الفرعي من سلسلة على بعض أحرفها بترتيبها الأصلي ويحذف الباقي؛ ولا يشترط أن تكون الأحرف المحتفَظ بها متجاورة. أعد طول أطول سلسلة تكون تسلسلًا فرعيًا في كلتا السلسلتين، أو 0 إذا لم يكن بين السلسلتين أي حرف مشترك.

الدالة

longestCommonSubsequence(text1: string, text2: string) → integer
text1string
السلسلة النصية الأولى
text2string
السلسلة النصية الثانية
تُرجعinteger
طول أطول تتابع مشترك

القيود

  • 1 ≤ text1.length ≤ 1000
  • 1 ≤ text2.length ≤ 1000
  • تحتوي كلتا السلسلتين النصيتين على أحرف إنجليزية صغيرة فقط.

أمثلة

المدخلات
text1 = "stone"text2 = "longest"
المخرجات
3
الشرح
تظهر الأحرف o وn وe بهذا الترتيب في كلتا الكلمتين، لذا فإن one هي سلسلة فرعية مشتركة طولها 3. في longest يأتي الحرفان s وt أخيرًا، بينما يأتيان أولًا في stone، لذا فإن السلسلة الفرعية المشتركة التي تستخدمهما لا يمكن أن تكون إلا st، وهي أقصر.

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

challenge icon

سؤال إضافي

هل يمكنك إرجاع أطول تسلسل فرعي مشترك نفسه، وليس طوله فقط؟

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

الحالة 1

الحالة 2

الحالة 3

المدخلات

text1 = "stone"
text2 = "longest"

المتوقع

3