شرح مشكلة أطول تسلسل مشترك ( LCS ) Longest Common Subsequence
Вставка
- Опубліковано 16 гру 2024
- مشكلة أطول تسلسل مشترك هي مشكلة تتعامل مع تحديد أطول تسلسل مشترك بين سلسلتين أو مجموعتين من العناصر. هذا التسلسل المشترك لا يحتاج إلى أن تكون العناصر المشتركة متتالية، بل يمكن أن تكون موجودة في أي موضع داخل السلسلة.
مشكلة أطول تسلسل مشترك تكون ذات أهمية في عدة مجالات، بما في ذلك علوم الحاسوب واللغويات الحاسوبية. يمكن استخدامها في تطبيقات مثل:
التعامل مع النصوص وتحليلها ومقارنتها.
ضغط البيانات وتحليل السلاسل الزمنية.
التعرف على الكلام ومعالجة الصوت.
الله يجزيك الخير ❤❤
ماشاءالله تبارك الله ، شرح جميل وبسيط، عندي فاينل فادني الفديو، الله يجزاك خير شكرا جزيلًا
فهمتي عليه؟ احس عجزت افهم اللحين القيم واحد وصفر ثابتين؟
@@ilkerked ترا رجعت تابعت الفيديو شكيت بحالي
بس جد واضح وكله حسب القواعد المكتوبه
@@Rasmi_Bakkar_Algorithms لا شرحك كويس بس انا بالغصب افهم😭
ايوا واضح الله يجزيه الخير
@@ilkerked الله يقويك يا رب
شكراً
عندي فاينل حيل ساعدتني
nice
ردا على كلامك في 05:40
بلى يجب ان تضع سهم لكل خليه لكي يتم التوجيه
جرب ان تحل المثال التالي وستجد ان طريقتك غير صحيحة
S1 = DBDCABAABBBC
S2 = DABCBDABBBAC
مع العلم ان الجواب الصحيح هو :
DBCBABBBC
نعم ربما ببعض الامثله بيمشي الحال بدون اسهم
لكن هن ربما من الواجب ان نضعهن شكرا على الملاحظه💖💖
def lcs(s1, s2):
m = len(s1)
n = len(s2)
dp = [[0 for _ in range(n+1)] for _ in range(m+1)]
for i in range(1, m+1):
for j in range(1, n+1):
if s1[i-1] == s2[j-1]:
dp[i][j] = dp[i-1][j-1] + 1
else:
dp[i][j] = max(dp[i-1][j], dp[i][j-1])
lcs = ""
i, j = m, n
while i > 0 and j > 0:
if s1[i-1] == s2[j-1]:
lcs = s1[i-1] + lcs
i -= 1
j -= 1
elif dp[i][j] == dp[i-1][j]:
i -= 1
else:
j -= 1
return lcs
s1 = ""
s2 = ""
print(lcs(s1, s2))
تفضل هذا الكود مشان تتاكد من حلك
@@Rasmi_Bakkar_Algorithms
جزيتم خيرا ❤❤