Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

SequenceMatcher का उपयोग करके सबसे लंबा सामान्य सबस्ट्रिंग खोजने का पायथन प्रोग्राम

समस्या विवरण

दो स्ट्रिंग्स दी गई हैं, हमारा कार्य सबसे लंबा सामान्य सब-स्ट्रिंग प्रिंट करना है। हम इस समस्या को पायथन में SequenceMatcher.find_longest_match() विधि का उपयोग करके हल करेंगे।

क्लास difflib.SequenceMatcher किसी भी प्रकार के अनुक्रमों के जोड़े की तुलना के लिए एक लचीला वर्ग है, बशर्ते अनुक्रम तत्व हैशेबल हों।

find_longest_match(a, x, b, y)

a[a:x] और b[b:y] में सबसे लंबा मिलान ब्लॉक खोजें।

उदाहरण

इनपुट: str1 = "pythonprogramming", str2 = "pro"
आउटपुट: pro

एल्गोरिदम

  1. दो स्ट्रिंग दर्ज करें।
  2. इनपुट स्ट्रिंग के साथ SequenceMatcher ऑब्जेक्ट आरंभ करें।
  3. सबसे लंबे सब-स्ट्रिंग आउटपुट का मिलान खोजें।
  4. सबसे लंबा सबस्ट्रिंग प्रिंट करें।

उदाहरण कोड

# सबसे लंबा सामान्य सब-स्ट्रिंग खोजने का पायथन प्रोग्राम
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. पायथन प्रोग्राम: दो संख्याओं के सामान्य भाजक पायथन प्रोग्राम: दो संख्याओं के सामान्य भाजक

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें दो पूर्णांक दिए गए हैं, हमें दो संख्याओं के सामान्य भाजक प्रदर्शित करने हैं। यहां हम इनपुट के रूप में ली गई दो संख्याओं का न्यूनतम निकालते हैं। एक लूप से विभाजकों की गणना की जाती है जो प्रत्येक मान को 1 से न्यूनतम गणना तक विभा

  1. पायथन प्रोग्राम: एनाग्राम सबस्ट्रिंग खोज पायथन प्रोग्राम: एनाग्राम सबस्ट्रिंग खोज

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक टेक्स्ट और एक पैटर्न दिया गया है, हमें पैटर्न और उसके क्रमपरिवर्तन (या एनाग्राम) की सभी घटनाओं को टेक्स्ट में प्रिंट करना है। उदाहरण # अधिकतम मान MAX = 300 # तुलना def compare(arr1, arr2): for i in range(MAX):

  1. - पायथन में दो से अधिक स्ट्रिंग्स से सबसे लंबी सामान्य सबस्ट्रिंग कैसे खोजें

    लॉन्गेस्ट कॉमन सबस्ट्रिंग एल्गोरिदम के सामान्य डायनामिक प्रोग्रामिंग कार्यान्वयन O(nm) समय में चलते हैं। लॉन्गेस्ट कॉमन सबस्ट्रिंग एल्गोरिदम का निम्नलिखित कार्यान्वयन है: उदाहरण longest: longest = m[x][y] x_longest = x else: m[x][y