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

पायथन में सबलिस्ट योग ऑपरेशन से एक सूची को दूसरी के समान बनाने का प्रोग्राम


मान लीजिए हमारे पास l1 और l2 नामक दो सूचियाँ हैं, हमें ऊपर दिए गए ऑपरेशन को बार-बार लागू करके सूचियों को समान बनाना है - एक सबलिस्ट चुनें, और पूरे सबलिस्ट को उसके योग से बदलें। अंत में ऊपर दिए गए ऑपरेशन लागू करने के बाद सबसे लंबी परिणामी सूची का आकार वापस करें। यदि कोई समाधान नहीं है, तो -1 वापस करें।

इसलिए, यदि इनपुट l1 = [1, 4, 7, 1, 2, 10] l2 = [5, 6, 1, 3, 10] जैसा है, तो आउटपुट 4 होगा, क्योंकि यदि हम इस ऑपरेशन को निम्नानुसार करते हैं −

  • l1 का सबलिस्ट [1, 4] लें तो हमें [5, 7, 1, 2, 10] मिलता है
  • l1 का सबलिस्ट [1, 2] लें तो हमें [5, 7, 3, 10] मिलता है
  • l2 का सबलिस्ट [6, 1] लें तो हमें [5, 7, 3, 10] मिलता है।

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

  • i := l1 का आकार - 1, j := l2 का आकार - 1, res := 0
  • जब तक i >= 0 और j >= 0, करें
    • यदि l1[i], l2[j] के समान है, तो
      • res := res + 1, i := i - 1, j := j - 1
    • अन्यथा जब l1[i] < l2[j], तो
      • यदि i > 0 शून्येतर है, तो
        • l1[i - 1] := l1[i - 1] + l1[i]
      • i := i - 1
    • अन्यथा जब l1[i] > l2[j], तो
      • यदि j > 0, तो
        • l2[j - 1] := l2[j - 1] + l2[j]
      • j := j - 1
  • यदि i, -1 के समान है और j, -1 के समान है तो res वापस करें अन्यथा -1 वापस करें

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

उदाहरण

class Solution:    def solve(self, l1, l2):       i, j, res = len(l1) - 1, len(l2) - 1, 0       while i >= 0 and j >= 0:          if l1[i] == l2[j]:             res, i, j = res + 1, i - 1, j - 1          elif l1[i] < l2[j]:             if i > 0:                l1[i - 1] += l1[i]             i -= 1          elif l1[i] > l2[j]:             if j > 0:                l2[j - 1] += l2[j]             j -= 1          return res if i == -1 and j == -1 else -1 ob = Solution() l1 = [1, 4, 7, 1, 2, 10] l2 = [5, 6, 1, 3, 10] print(ob.solve(l1, l2))

इनपुट

[1, 4, 7, 1, 2, 10], [5, 6, 1, 3, 10]

आउटपुट

4

  1. पायथन प्रोग्राम: लिस्ट का संचयी योग ज्ञात करें पायथन प्रोग्राम: लिस्ट का संचयी योग ज्ञात करें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट दी गई है, हमें संचयी योग के साथ एक लिस्ट बनानी है। उदाहरण # संचयी योग def Cumulative(l): new = [] cumsum = 0 for element in l: cumsum += element new.append(cumsum) return new # ड्राइवर

  1. - पायथन प्रोग्राम: लिस्ट को स्ट्रिंग में बदलें

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

  1. - पायथन प्रोग्राम: ऐरे को साधारण लिस्ट में कन्वर्ट करना

    ऐरे दिया गया है। हमारा कार्य ऐरे को साधारण लिस्ट में कन्वर्ट करना है। हम इस समस्या को tolist() फंक्शन की मदद से हल करते हैं। यह फंक्शन ऐरे को (संभावित नेस्टेड) लिस्ट के रूप में लौटाता है।एल्गोरिदमचरण 1: एक ऐरे दिया गया है। चरण 2: tolist() फंक्शन का उपयोग करके ऐरे को लिस्ट में कन्वर्ट करें। चरण 3: लि