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

पायथन में सबसे छोटे सुपरसीक्वेंस की लंबाई ज्ञात करने का प्रोग्राम


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

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

एल्गोरिदम

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • m := s का आकार, n := t का आकार
  • table := (n+1) x (m+1) आकार की एक टेबल जिसे 0 से भरा गया हो
  • i = 0 से m तक के लिए:
    • j = 0 से n तक के लिए:
      • यदि i == 0 या j == 0, तो table[i][j] := 0
      • अन्यथा, यदि s[i-1] == t[j-1], तो table[i][j] := 1 + table[i-1][j-1]
      • अन्यथा, table[i][j] := max(table[i][j-1], table[i-1][j])
  • return m + n - table[m][n]

उदाहरण

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

class Solution:
    def solve(self, s, t):
        m = len(s)
        n = len(t)
        table = [[0 for _ in range(n + 1)] for _ 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
                elif 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. पायथन में बहुभुज का क्षेत्रफल खोजने का प्रोग्राम पायथन में बहुभुज का क्षेत्रफल खोजने का प्रोग्राम

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

  1. टारगेट को धारण करने वाले सबसे छोटे चक्र की लंबाई ज्ञात करने का पायथन प्रोग्राम टारगेट को धारण करने वाले सबसे छोटे चक्र की लंबाई ज्ञात करने का पायथन प्रोग्राम

    मान लीजिए हमारे पास एक निर्देशित ग्राफ की आसन्न सूची है, जहां इंडेक्स i पर प्रत्येक सूची नोड i से जुड़े नोड्स को दर्शाती है। हमारे पास एक टारगेट मान भी है। हमें उस सबसे छोटे चक्र की लंबाई ढूंढनी है जिसमें टारगेट शामिल है। यदि कोई समाधान नहीं है तो -1 लौटाएं। उदाहरण के लिए, यदि इनपुट इस तरह है: tar

  1. - पायथन में सख्ती से बढ़ते सन्निकट सबलिस्ट की लंबाई खोजने का प्रोग्राम

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