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

पायथन में दूर के बारकोड

मान लीजिए एक गोदाम में बारकोड की एक पंक्ति है। i-वें बारकोड बारकोड है [i]। हमें बारकोड को पुनर्व्यवस्थित करना होगा ताकि कोई भी दो आसन्न बारकोड समान न हों। तो अगर इनपुट [1,1,1,2,2,2] है तो आउटपुट [2,1,2,1,2,1] है।

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

  • d नाम का एक नक्शा बनाएं
  • बारकोड सरणी में मौजूद संख्याओं की आवृत्ति को d में संग्रहीत करें
  • x :=खाली सूची
  • सभी कुंजी-मान युग्मों को x में सम्मिलित करें
  • मैं :=0
  • res :=एक सूची बनाएं जिसकी लंबाई बारकोड के समान हो और [0]
  • भरें
  • आवृत्ति के आधार पर x क्रमबद्ध करें
  • जबकि मैं <परिणाम की लंबाई
    • result[i] :=x की अंतिम प्रविष्टि का तत्व
    • x की अंतिम प्रविष्टि की आवृत्ति मान घटाएं
    • यदि x के अंतिम अवयव की आवृत्ति 0 है, तो उस प्रविष्टि को x से हटा दें
    • मैं 2 से बढ़ाएँ
  • मैं :=1
  • जबकि मैं <परिणाम की लंबाई
    • result[i] :=x की अंतिम प्रविष्टि का तत्व
    • x की अंतिम प्रविष्टि की आवृत्ति मान घटाएं
    • यदि x के अंतिम अवयव की आवृत्ति 0 है, तो उस प्रविष्टि को x से हटा दें
    • मैं 2 से बढ़ाएँ
  • वापसी का परिणाम

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

उदाहरण

class Solution(object):
   def rearrangeBarcodes(self, barcodes):
      d = {}
      for i in barcodes:
         if i not in d:
            d[i] = 1
         else:
            d[i]+=1
      x = []
      for a,b in d.items():
         x.append([a,b])
      i = 0
      result = [0]*len(barcodes)
      x = sorted(x,key=lambda v:v[1])
      while i <len(result):
         result[i] = x[-1][0]
         x[-1][1]-=1
         if x[-1][1]==0:
            x.pop()
         i+=2
      i=1
      while i <len(result):
         result[i] = x[-1][0]
         x[-1][1]-=1
         if x[-1][1]==0:
            x.pop()
         i+=2
      return result
ob = Solution()
print(ob.rearrangeBarcodes([1,1,1,2,2,2]))

इनपुट

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

आउटपुट

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

  1. issuperset () पायथन में

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

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

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

  1. पायथन में क्विन

    क्विन एक प्रोग्राम है, जो कोई इनपुट नहीं लेता है, लेकिन यह आउटपुट का उत्पादन करता है। यह इसका अपना सोर्स कोड दिखाएगा। इसके अतिरिक्त, क्विन की कुछ शर्तें हैं। हम प्रोग्राम के अंदर सोर्स कोड फ़ाइल नहीं खोल सकते। उदाहरण कोड a=a=%r;print (a%%a);print (a%a) आउटपुट a=a=%r;print (a%%a);print (a%a) य