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

जांचें कि क्या पायथन में विभिन्न नोटों के साथ ग्राहक कतार की सेवा करना संभव है

मान लीजिए कि हमारे पास नोट नामक एक सरणी है जो ग्राहकों द्वारा कतार में रखे गए विभिन्न रुपये के नोटों का प्रतिनिधित्व करती है। वे सभी 50 रुपये के टिकट खरीदने की प्रतीक्षा कर रहे हैं। यहाँ संभावित नोट [50, 100 और 200] हैं। हमें यह जांचना होगा कि हम लोगों को टिकट बेच सकते हैं या नहीं, शुरू में हमारे हाथ में 0 रुपये हैं।

तो, अगर इनपुट नोट की तरह है =[50, 50, 100, 100], तो आउटपुट ट्रू होगा पहले दो के लिए हमें कुछ भी वापस करने की आवश्यकता नहीं है, लेकिन अब हमारे पास 50 रुपये के दो नोट हैं। तो पिछले दो के लिए हम उन्हें 50 रुपये के नोट वापस कर सकते हैं और सभी टिकटों को क्रम से बेच सकते हैं।

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

  • आवृत्ति:=एक खाली नक्शा
  • मैं :=0
  • जबकि मैं <नोटों का आकार, करता हूं
    • यदि नोट[i] 50 के समान है, तो
      • freq[50] :=freq[50] + 1
    • अन्यथा जब नोट[i] 100 के समान हो, तो
      • freq[100] :=freq[100] + 1
      • अगर freq[50] 0 है, तो
        • लूप से बाहर आएं
      • freq[50] :=freq[50] - 1
    • अन्यथा,
      • अगर freq[100]> 0 और freq[50]> 0, तो
        • freq[100] :=freq[100] - 1
        • freq[50] :=freq[50] - 1
      • अन्यथा जब freq[50]>=3, तब
        • freq[50] :=freq[50] - 3
      • अन्यथा,
        • लूप से बाहर आएं
    • i :=i + 1
  • यदि मैं नोटों के आकार के समान हूं, तो
    • सही लौटें
  • झूठी वापसी

उदाहरण

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

from collections import defaultdict
def solve(notes):
   freq = defaultdict(int)
   i = 0
   while i < len(notes):
      if notes[i] == 50:
         freq[50] += 1
      elif notes[i] == 100:
         freq[100] += 1
         if freq[50] == 0:
            break
         freq[50] -= 1
      else:
         if freq[100] > 0 and freq[50] > 0:
            freq[100] -= 1
            freq[50] -= 1
         elif freq[50] >= 3:
            freq[50] -= 3
         else:
            break
      i += 1
   if i == len(notes):
      return True
   return False
notes = [50, 50, 100, 100]
print(solve(notes))

इनपुट

[50, 50, 100, 100]

आउटपुट

True

  1. पायथन में विभिन्न चार्ट के साथ डेटा विज़ुअलाइज़ेशन?

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

  1. कैसे जांचें कि कोई फ़ाइल पायथन में टर्मिनल से जुड़ी है या नहीं?

    आप जांच सकते हैं कि आपकी वर्तमान स्क्रिप्ट टर्मिनल से जुड़ी है या नहीं, isatty() फ़ंक्शन का उपयोग नहीं कर रही है। उदाहरण के लिए, import sys if sys.stdout.isatty():     print("Inside a terminal!") else:     print("Piped output") यदि आप उपरोक्त को टर्मिनल से चल

  1. कैसे जांचें कि स्ट्रिंग या स्ट्रिंग का सबस्ट्रिंग पायथन में सबस्ट्रिंग के साथ शुरू होता है या नहीं?

    स्ट्रिंग क्लास में पायथन की एक विधि startwith(string) है। यह विधि एक उपसर्ग स्ट्रिंग को स्वीकार करती है जिसे आप खोजना चाहते हैं और इसे स्ट्रिंग ऑब्जेक्ट पर कहा जाता है। आप इस विधि को निम्न तरीके से कॉल कर सकते हैं: हैलो वर्ल्ड।स्टार्ट्सविथ (नोप) झूठा यह पता लगाने का एक और तरीका है कि कोई स्ट्रिंग