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

पायथन में कर्मचारी महत्व


मान लीजिए हमारे पास कर्मचारी जानकारी की एक डेटा संरचना है, जिसमें कर्मचारी की विशिष्ट आईडी, उसका महत्व मूल्य और उसके प्रत्यक्ष अधीनस्थों की आईडी हैं। उदाहरण के लिए, कर्मचारी 1 कर्मचारी 2 का नेता है, और कर्मचारी 2 कर्मचारी 3 का नेता है। मान लीजिए उनके महत्व मूल्य क्रमशः 15, 10 और 5 हैं। तब कर्मचारी 1 की डेटा संरचना [1, 15, [2]] होगी, कर्मचारी 2 की [2, 10, [3]], और कर्मचारी 3 की [3, 5, []]।

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

उदाहरण के लिए, यदि इनपुट [[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1 है, तो आउटपुट 11 होगा, क्योंकि Emp1 का महत्व मूल्य 5 है, और Emp1 के दो प्रत्यक्ष अधीनस्थ हैं - Emp2 और Emp3। दोनों का महत्व मूल्य 3 है। इसलिए, Emp1 का कुल महत्व मूल्य 5 + 3 + 3 = 11 है।

हल करने के चरण

  • weight := एक नया मैप, leader := एक नया मैप
  • employees में प्रत्येक e के लिए:
    • weight[e[0]] := e[1]
    • leader[e[0]] := e[2]
  • res := 0
  • res := res + weight[id]
  • queue := leader[id]
  • जब तक queue शून्येतर है:
    • new_queue := एक नई सूची
    • node := queue से अंतिम तत्व हटाएं
    • res := res + weight[node]
    • यदि leader[node] शून्येतर है, तो:
      • new_queue := new_queue + leader[leader का आकार]
    • queue := queue + new_queue
  • res वापस करें

उदाहरण

class Solution(object):
    def getImportance(self, employees, id):
        weight = {}
        leader = {}
        for e in employees:
            weight[e[0]] = e[1]
            leader[e[0]] = e[2]
        res = 0
        res += weight[id]
        queue = leader[id]
        while queue:
            new_queue = []
            node = queue.pop()
            res += weight[node]
            if leader[node]:
                new_queue += leader[node]
            queue += new_queue
        return res

ob = Solution()
print(ob.getImportance([[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1))

इनपुट

[[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1

आउटपुट

11
  1. पायथन में issuperset() फंक्शन पायथन में issuperset() फंक्शन

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे।यह मेथड बूलियन True वापस करता है यदि सेट B के सभी तत्व सेट A के सभी तत्वों को समाहित करते हैं जिसे तर्क के रूप में पारित किया जाता है और झूठा वापस करता है यदि A के सभी तत्व B में मौजूद नहीं हैं।इसका म

  1. - पायथन में अंडरस्कोर (_)

    पायथन में कुछ मामलों में हम सिंगल अंडरस्कोर (_) और कुछ मामलों में डबल अंडरस्कोर (__) का उपयोग करते हैं। पायथन में निम्नलिखित मामले हैं, जहां हम अंडरस्कोर का उपयोग करते हैं। यदि हम इंटरप्रेटर में अंतिम अभिव्यक्ति का मान स्टोर करना चाहते हैं। यदि हम कुछ मानों को अनदेखा करना चाहते हैं। वेरिएबल या फ़ं

  1. - पायथन टुपल को PostgreSQL डेटाबेस में कैसे इन्सर्ट करें?

    PostgreSQL डेटाबेस डिफ़ॉल्ट रूप से पोर्ट नंबर 5432 पर इंस्टॉल होता है। PostgreSQL के लिए पायथन इंटरफेस psycopg2 मॉड्यूल इंस्टॉल करके प्रदान किया जाता है। मान लें कि test डेटाबेस और fname, sname, age, gender और salary फील्ड्स वाली employee टेबल उपलब्ध है। पहले पायथन स्क्रिप्ट में निम्नलिखित स्टेटमें