কম্পিউটার টিউটোরিয়াল

পাইথনে SequenceMatcher ব্যবহার করে লংগেস্ট কমন সাবস্ট্রিং বের করা

দুটি স্ট্রিং দেওয়া আছে, তাদের লংগেস্ট কমন সাবস্ট্রিং প্রিন্ট করতে হবে। এখানে 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
  1. পাইথনে লংগেস্ট কমন প্রিফিক্স (Longest Common Prefix)

  2. দুই সংখ্যার কমন ডিভাইজার বের করার পাইথন প্রোগ্রাম

  3. এনাগ্রাম সাবস্ট্রিং সার্চের পাইথন প্রোগ্রাম

  4. পাইথনে দুইটির বেশি স্ট্রিং থেকে লংগেস্ট কমন সাবস্ট্রিং বের করা