দুটি স্ট্রিং দেওয়া আছে, তাদের লংগেস্ট কমন সাবস্ট্রিং প্রিন্ট করতে হবে। এখানে SequenceMatcher.find_longest_match() মেথড ব্যবহার করা হয়েছে।
Class difflib.SequenceMatcher হলো একটি নমনীয় ক্লাস যেটি যেকোনো টাইপের সিকোয়েন্সের জোড়া তুলনা করতে পারে, শর্ত হলো সিকোয়েন্স এলিমেন্টগুলো হ্যাশেবল হতে হবে।
find_longest_match(a, x, b, y)
a[a:x] এবং b[b:y]-এ সর্বোচ্চ মিলব্লক বের করুন।
উদাহরণ
ইনপুট: str1 = "pythonprogramming", str2 = "pro" আউটপুট: pro
অ্যালগরিদম
ধাপ ১: দুটি স্ট্রিং ইনপুট নিন। ধাপ ২: ইনপুট স্ট্রিং দিয়ে SequenceMatcher অবজেক্ট আরম্ভ করুন। ধাপ ৩: লংগেস্ট সাবস্ট্রিং মিল বের করুন। ধাপ ৪: লংগেস্ট সাবস্ট্রিং প্রিন্ট করুন।
উদাহরণ কোড
# পাইথন প্রোগ্রাম: SequenceMatcher দিয়ে লংগেস্ট কমন সাবস্ট্রিং
from difflib import SequenceMatcher
def matchsubstring(m, n):
seqMatch = SequenceMatcher(None, m, n)
match = seqMatch.find_longest_match(0, len(m), 0, len(n))
if (match.size != 0):
print("সাধারণ সাবস্ট্রিং ::>", m[match.a: match.a + match.size])
else:
print('কোন লংগেস্ট কমন সাবস্ট্রিং পাওয়া যায়নি')
# ড্রাইভার প্রোগ্রাম
if __name__ == "__main__":
X = input("প্রথম স্ট্রিং দিন ")
Y = input("দ্বিতীয় স্ট্রিং দিন ")
matchsubstring(X, Y)
আউটপুট
প্রথম স্ট্রিং দিন pythonprogramming দ্বিতীয় স্ট্রিং দিন pro সাধারণ সাবস্ট্রিং ::> pro