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

Python में विभिन्न नोटों से ग्राहक क्यू को सेवा देने की संभावना की जांच कैसे करें?

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

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

हल करने के चरण

  • freq := एक खाली मैप
  • i := 0
  • जब तक i < notes का आकार, तब तक:
    • यदि notes[i], 50 के समान है, तो:
      • freq[50] := freq[50] + 1
    • अन्यथा जब notes[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
  • यदि i, notes के आकार के समान है, तो:
    • True लौटाएं
  • False लौटाएं

उदाहरण

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. पायथन में विभिन्न चार्ट के साथ डेटा विज़ुअलाइज़ेशन पायथन में विभिन्न चार्ट के साथ डेटा विज़ुअलाइज़ेशन

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

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

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

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

    पायथन में स्ट्रिंग क्लास में startswith(string) मेथड होता है। यह मेथड एक प्रीफिक्स स्ट्रिंग स्वीकार करता है जिसे आप खोजना चाहते हैं और एक स्ट्रिंग ऑब्जेक्ट पर कॉल किया जाता है। आप इस मेथड को निम्न प्रकार से कॉल कर सकते हैं: >>> hello world.startswith(hell) True >>> Harry Potter.sta