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

पायथन में लेमनेड चेंज


मान लीजिए एक लेमनेड स्टैंड है, जहां प्रत्येक लेमनेड की कीमत $5 है। ग्राहक कतार में खड़े हैं और एक-एक करके खरीदते हैं।

प्रत्येक ग्राहक केवल एक लेमनेड खरीद सकता है और $5, $10, या $20 के नोट से भुगतान करता है। हमें प्रत्येक ग्राहक को सही बदलाव देना होगा ताकि शुद्ध लेनदेन $5 का हो। शुरुआत में हमारे पास कोई बदलाव नहीं होता।

हमें जांचना है कि क्या हम हर ग्राहक को सही बदलाव दे सकते हैं।

उदाहरण के लिए, यदि इनपुट [5,5,5,10,20] है, तो आउटपुट True होगा, क्योंकि पहले 3 ग्राहकों से हमें तीन $5 के नोट मिलते हैं। चौथे ग्राहक से हम $10 लेते हैं और $5 वापस करते हैं। पांचवें ग्राहक को हम $10 और $5 का बदलाव देते हैं। चूंकि सभी ग्राहकों को सही बदलाव मिला, आउटपुट True है।

हल करने के चरण

  • n5 := 0, n10 := 0, n20 := 0
  • बिल्स में प्रत्येक i के लिए:
    • यदि i 5 के बराबर है, तो n5 := n5 + 1
    • अन्यथा यदि i 10 के बराबर है, तो n10 := n10 + 1
    • अन्यथा n20 := n20 + 1
    • यदि बिल्स का आकार > 0 और n5 0 के बराबर है, तो False वापस करें
    • यदि i 20 के बराबर है और n10 > 0 और n5 > 0, तो:
      • n10 := n10 - 1
      • n5 := n5 - 1
    • अन्यथा जब i 20 के बराबर है और n10 0 के बराबर है और n5 < 3, तो False वापस करें
    • अन्यथा जब i 20 के बराबर है और n10 0 के बराबर है और n5 >= 3, तो:
      • n5 := n5 - 3
    • यदि i 10 के बराबर है और n5 > 0, तो n5 := n5 - 1
    • अन्यथा जब i 10 के बराबर है और n5 0 के बराबर है, तो False वापस करें
  • True वापस करें

उदाहरण

class Solution:
    def lemonadeChange(self, bills):
        n5 = 0
        n10 = 0
        n20 = 0
        for i in bills:
            if i == 5:
                n5 += 1
            elif i == 10:
                n10 += 1
            else:
                n20 += 1
            if len(bills) > 0 and n5 == 0:
                return False
            if i == 20 and n10 > 0 and n5 > 0:
                n10 -= 1
                n5 -= 1
            elif i == 20 and n10 == 0 and n5 < 3:
                return False
            elif i == 20 and n10 == 0 and n5 >= 3:
                n5 = n5 - 3
            if i == 10 and n5 > 0:
                n5 -= 1
            elif i == 10 and n5 == 0:
                return False
        return True

ob = Solution()
print(ob.lemonadeChange([5,5,5,10,20]))

इनपुट

[5,5,5,10,20]

आउटपुट

True
  1. Matplotlib (Python) में फॉन्ट्स कैसे बदलें? Matplotlib (Python) में फॉन्ट्स कैसे बदलें?

    plt.text() मेथड का उपयोग करके, हम फॉन्ट साइज़ बढ़ा सकते हैं।चरणplt.plot() मेथड का उपयोग करके, हम दो सूचियों को इसके आर्गुमेंट में पास करके एक लाइन बना सकते हैं।एक्सिस में टेक्स्ट जोड़ें। plt.text() मेथड का उपयोग करके डेटा कोऑर्डिनेट्स में लोकेशन x, y पर टेक्स्ट *s* को एक्सिस में जोड़ें। फॉन्ट साइज़

  1. पायथन प्रोग्राम: सिक्का परिवर्तन पायथन प्रोग्राम: सिक्का परिवर्तन

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें N सिक्के दिए गए हैं और हम उन सिक्कों का परिवर्तन करना चाहते हैं ताकि S में प्रत्येक मूल्य की अनंत आपूर्ति हो। हमें प्रदर्शित करना है कि हम कितने तरीकों से क्रम की परवाह किए बिना परिवर्तन कर सकते हैं। हम समय जटिलता को कम करने क

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

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