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

पायथन में दो दिए गए स्ट्रिंग्स के सामान्य विशेष सबस्ट्रिंग का आकार खोजने का कार्यक्रम

मान लीजिए कि हमारे पास दो तार s1 और s2 हैं। हमें सबसे लंबी स्ट्रिंग s3 का आकार खोजना है जो s1 और s2 दोनों का विशेष विकल्प है।

हम कह सकते हैं कि एक स्ट्रिंग x दूसरे स्ट्रिंग y का विशेष विकल्प है यदि x को y से 0 या अधिक वर्णों को हटाकर उत्पन्न किया जा सकता है।

इसलिए, यदि इनपुट s1 ='अनानास' s2 ='लोग' जैसा है, तो आउटपुट 5 होगा क्योंकि विशेष सबस्ट्रिंग 'peple', आकार 5 है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • पिछला :=एक नया शब्दकोश, जहां अगर कुछ कुंजी मौजूद नहीं है, तो 0 लौटाएं
  • i के लिए 0 से लेकर s1 - 1 के आकार तक के लिए
    • cur :=एक नया शब्दकोश, जहां अगर कुछ कुंजी मौजूद नहीं है, तो 0 लौटाएं
    • जे के लिए 0 से लेकर s2-1 के आकार तक के लिए
      • cur[j] :=prev[j - 1] + 1 जब s1[i] s2[j] के समान हो अन्यथा अधिकतम cur[j -1] और prev[j]
    • पिछला :=वक्र
  • वापसी पिछला [s2 -1 का आकार]

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

from collections import defaultdict
def solve(s1, s2):
   prev = defaultdict(int)
   for i in range(len(s1)):
      cur = defaultdict(int)
      for j in range(len(s2)):
         cur[j] = prev[j - 1] + 1 if s1[i] == s2[j] else max(cur[j - 1], prev[j])
      prev = cur
   return prev[len(s2)-1]

s1 = 'pineapple'
s2 = 'people'
print(solve(s1, s2))

इनपुट

'pineapple', 'people'

आउटपुट

5

  1. पायथन में दिए गए ग्राफ में विशेष प्रकार के सबग्राफ खोजने का कार्यक्रम

    मान लीजिए हमारे पास एक विशेष प्रकार का ग्राफ है जिसमें दो प्रकार के शीर्ष हैं जिन्हें सिर और पैर नाम दिया गया है। ग्राफ में केवल एक सिर होता है और k किनारे होते हैं जो सिर को प्रत्येक पैर से जोड़ते हैं। इसलिए, अगर हमें एक अप्रत्यक्ष, बिना भार वाला ग्राफ दिया जाता है; हमें इन विशेष प्रकार के आलेखों क

  1. पायथन प्रोग्राम यह पता लगाने के लिए कि क्या कोई दो की शक्ति नहीं है

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक नंबर दिया गया है, हमें यह जांचना होगा कि संख्या दो की शक्ति है या नहीं। जैसा कि नीचे चर्चा की गई है, हम दो दृष्टिकोणों का उपयोग करके इसे हल कर सकते हैं। दृष्टिकोण 1:शक्ति प्राप्त करने के लिए आधार 2 पर दिए गए

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

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें दो तार दिए गए हैं, हमें दिए गए तार से असामान्य शब्द निकालने होंगे। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # uncommon words def find(A, B):    # count    count = {}   &n