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
  • जबकि मैं>=0 और j>=0, करते हैं
    • अगर l1[i] l2[j] के समान है, तो
      • res :=res + 1, i :=i-1, j :=j-1
    • अन्यथा जब l1[i]
    • यदि 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
  • रिटर्न रेस अगर मैं -1 के समान है और जे -1 के समान है अन्यथा रिटर्न -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. एक सूची का संचयी योग खोजने के लिए पायथन कार्यक्रम

      इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें संचयी राशि के साथ एक सूची बनानी होगी। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # cumulative sum def Cumulative(l):    new = []    cumsum = 0   &nb

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

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

    1. एक ही आइटम के साथ एक सरणी को एक साधारण सूची में बदलने के लिए पायथन प्रोग्राम

      सरणी दी गई है। हमारा काम एक सरणी को एक साधारण सूची में बदलना है। हम इस समस्या को tolist() फ़ंक्शन की सहायता से हल करते हैं। यह फ़ंक्शन सरणी को (संभवतः नेस्टेड) ​​सूची के रूप में लौटाता है। एल्गोरिदम Step 1: Given an array. Step 2: convert the array to a list using tolist() function. Step 3: Display