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

पायथन में नेस्टेड लिस्ट वेट सम II

पूर्णांकों की एक नेस्टेड सूची को देखते हुए, उनकी गहराई से भारित सूची में सभी पूर्णांकों का योग लौटाएं। प्रत्येक तत्व या तो एक पूर्णांक या एक सूची है -- जिसके तत्व पूर्णांक या अन्य सूचियाँ भी हो सकते हैं। पिछले प्रश्न से भिन्न जहां वजन जड़ से पत्ती तक बढ़ रहा है, अब वजन नीचे से ऊपर की ओर परिभाषित किया गया है। यानी, पत्ती स्तर के पूर्णांकों का भार 1 होता है, और मूल स्तर के पूर्णांकों का भार सबसे अधिक होता है।

इसलिए, अगर इनपुट [[1,1],2,[1,1]] जैसा है, तो आउटपुट 8 होगा, चार 1 की गहराई 1, एक 2 गहराई 2 पर।

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

  • एक फ़ंक्शन को परिभाषित करें गहराईSumInverse() । यह नेस्टेडलिस्ट लेगा

  • फ्लैट्स:=एक नई सूची

  • अधिकतम:=0

  • फ़्लैटन () फ़ंक्शन को परिभाषित करें। इसमें nlst,dist

    . लगेगा
  • जिला :=जिला + 1

  • अधिकतम:=अधिकतम अधिकतम, जिला

  • nlst में प्रत्येक नोड के लिए, करें

    • यदि नोड एक पूर्णांक गैर-शून्य है, तो

      • फ्लैटों के अंत में (नोड, जिला) डालें

    • अन्यथा,

      • समतल (नोड, जिला)

  • फ़्लैटन (नेस्टेडलिस्ट, 0)

  • योग:=0

  • प्रत्येक वी, डी के लिए फ्लैटों में, करें

    • योग :=योग + वी*(अधिकतम+1-डी)

  • वापसी राशि

उदाहरण

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

class Solution(object):
   def depthSumInverse(self, nestedList):
      flats=[]
      self.maxd=0
      def flatten(nlst,dist):
         if isinstance(nlst,list):
            nlst=nlst
         dist+=1
         self.maxd=max(self.maxd,dist)
         for node in nlst:
            if isinstance(node,int):
               flats.append((node,dist))
            else:
               flatten(node,dist)
      flatten(nestedList,0)
      summ=0
      for v,d in flats:
         summ+=v*(self.maxd+1-d)
      return summ

ob = Solution()
print(ob.depthSumInverse([[1,1],2,[1,1]]))

इनपुट

[[1,1],2,[1,1]]

आउटपुट

8

  1. पायथन में बाइनरी ट्री अधिकतम पथ योग

    मान लीजिए कि हमारे पास एक गैर-खाली बाइनरी ट्री है। हमें पथ योग ज्ञात करना है। तो यहां, पथ कुछ शुरुआती नोड से किसी भी नोड में नोड्स का कोई अनुक्रम है जहां माता-पिता कनेक्शन मौजूद हैं। पथ में कम से कम एक नोड होना चाहिए और रूट नोड के माध्यम से जाने की आवश्यकता नहीं है। तो अगर इनपुट ट्री है - यहां आउ

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

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

  1. सूची में तत्वों का योग खोजने के लिए पायथन कार्यक्रम

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