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 है।

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

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

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

उदाहरण

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() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे। यह विधि बूलियन ट्रू लौटाती है यदि एक सेट बी के सभी तत्वों में सभी तत्व सेट ए होते हैं जो एक तर्क के रूप में पारित होते हैं और यदि ए के सभी तत्व बी में मौजूद नहीं होते हैं तो झूठा रिटर्न देता है। इस

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

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

  1. PostgreSql डेटाबेस में पायथन टपल कैसे डालें?

    PostgreSql डेटाबेस डिफ़ॉल्ट रूप से पोर्ट नंबर 5432 पर स्थापित है। PostgreSql को पायथन इंटरफ़ेस psycopg2 मॉड्यूल स्थापित करके प्रदान किया जाता है। यह मानते हुए कि fname, sname, आयु, लिंग और वेतन क्षेत्रों के साथ परीक्षण डेटाबेस और कर्मचारी तालिका उपलब्ध है। पहले कनेक्शन स्थापित करें और पायथन लिपि में