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

पायथन में कम से कम सुपरसीक्वेंस की लंबाई खोजने का कार्यक्रम

मान लीजिए कि हमारे पास दो तार s और t हैं। हमें सबसे छोटी स्ट्रिंग की लंबाई का पता लगाना है जिसमें s और t दोनों बाद के रूप में हैं।

इसलिए, यदि इनपुट s ="पाइप" t ="लोग" जैसा है, तो आउटपुट 7 होगा, क्योंकि एक संभावित सुपरसीक्वेंस "पियोपल" है।

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

  • मी :=s का आकार, n :=t का आकार

  • तालिका:=आकार की एक तालिका (n + 1) x (m + 1) और 0 से भरें

  • मेरे लिए 0 से मी की सीमा में, करें

    • j के लिए 0 से n की सीमा में, करें

      • अगर मैं 0 के समान हूं या j, 0 के समान है, तो

        • टेबल [i, j] :=0

      • अन्यथा,

        • अगर s[i - 1] t[j - 1] के समान है, तो

          • टेबल [i, j] :=1 + टेबल[i-1, j-1]

        • अन्यथा,

          • तालिका [i, j] =अधिकतम तालिका [i, j - 1] और तालिका [i - 1, j]

  • वापसी एम + एन - टेबल [एम, एन]

उदाहरण

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

class Solution:
   def solve(self, s, t):
      m = len(s)
      n = len(t)
      table = [[0 for i in range(n + 1)] for j in range(m + 1)]
      for i in range(m + 1):
         for j in range(n + 1):
            if i == 0 or j == 0:
               table[i][j] = 0
            else:
               if s[i - 1] == t[j - 1]:
                  table[i][j] = 1 + table[i - 1][j - 1]
            else:
               table[i][j] = max(table[i][j - 1], table[i - 1][j])
      return m + n - table[m][n]
ob = Solution()
s = "pipe"
t = "people"
print(ob.solve(s, t))

इनपुट

"pipe", "people"

आउटपुट

7

  1. पायथन में बहुभुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का क्षेत्रफल ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 15 होगा। इसे हल करने के लिए, हम इन चरणों का पालन क

  1. पायथन में कम से कम चक्र लंबाई होल्डिंग लक्ष्य खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक निर्देशित ग्राफ की आसन्नता सूची है, जहां सूचकांक i पर प्रत्येक सूची नोड i से जुड़े नोड्स का प्रतिनिधित्व करती है। हमारे पास एक लक्ष्य मूल्य भी है। हमें लक्ष्य वाले सबसे छोटे चक्र की लंबाई ज्ञात करनी है। अगर कोई समाधान नहीं है तो वापसी -1. तो, अगर इनपुट पसंद है 0 है, लेक

  1. पायथन में सन्निहित कड़ाई से बढ़ती उपसूची की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, जब हम सूची से एक या शून्य तत्वों को हटा सकते हैं, तो हमें एक सन्निहित सख्ती से बढ़ती उप-सूची की अधिकतम लंबाई का पता लगाना होगा। इसलिए, यदि इनपुट संख्या =[30, 11, 12, 13, 14, 15, 18, 17, 32] की तरह है, तो आउटपुट 7 होगा, क्योंकि जब ह