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

Python में जांचने का प्रोग्राम कि क्या हम अपने पसंदीदा दिन पर पसंदीदा कैंडी खा सकते हैं


मान लीजिए हमारे पास एक ऐरे candiesCount है जहां candiesCount[i] iवें प्रकार की कैंडी की संख्या दर्शाता है। हमारे पास एक और ऐरे queries है जहां queries[i] में तीन पैरामीटर [favoriteType_i, favoriteDay_i, dailyCap_i] होते हैं। हमारे कुछ नियम हैं:

  • हम दिन 0 से कैंडी खाना शुरू करते हैं।
  • हम प्रकार i की कोई कैंडी नहीं खा सकते जब तक हमने पिछले i-1 प्रकार की सभी कैंडी न खा ली हों।
  • हमें प्रति दिन कम से कम एक कैंडी खानी होगी जब तक हम उन सभी को न खा लें।

इन नियमों को बनाए रखते हुए, हमें प्रत्येक क्वेरी के परिणाम के लिए बूलियन मानों का एक ऐरे बनाना है और iवां एंट्री true है यदि हम favoriteDay_i दिन पर favoriteType_i प्रकार की कैंडी खा सकते हैं बिना किसी दिन dailyCap_i से अधिक कैंडी खाए। हम एक ही दिन अलग-अलग प्रकार की कैंडी खा सकते हैं, नियम 2 का पालन करते हुए।

उदाहरण के लिए, यदि इनपुट है candiesCount = [7,4,5,3,8], queries = [[0,2,2],[4,2,4],[2,13,100]], तो आउटपुट [true,false,true] होगा क्योंकि:

  • यदि हम दिन 0 और दिन 1 पर 2 टाइप-0 कैंडी खाते हैं, तो हम दिन 2 पर टाइप-0 कैंडी खाएंगे
  • हम प्रति दिन अधिकतम 4 कैंडी खा सकते हैं। यदि हम हर दिन 4 कैंडी खाते हैं, तो हम दिन 0 पर 4 टाइप-0 कैंडी और दिन 1 पर 4 टाइप-0, टाइप-1 कैंडी खाएंगे। फिर दिन 2 पर, हम केवल 4 टाइप-1, टाइप-2 कैंडी खा सकते हैं, इसलिए हम दिन 2 पर टाइप 4 की कैंडी नहीं खा सकते।
  • हम प्रति दिन 1 कैंडी खा सकते हैं, हम दिन 13 पर टाइप-2 की कैंडी खाएंगे।

समाधान के चरण

  1. sumcandy := [candiesCount[0]] (एकल तत्व वाली सूची)
  2. index := 1
  3. while index < len(candiesCount):
    • sumcandy.append(sumcandy[index-1] + candiesCount[index])
    • index := index + 1
  4. sumcandy.append(0)
  5. res := [] (नई सूची)
  6. queries में प्रत्येक each के लिए:
    • typ := each[0]
    • day := each[1]
    • cap := each[2]
    • यदि day+1 > sumcandy[typ] या (day+1)*cap <= sumcandy[typ-1], तो:
      • res.append(False)
    • अन्यथा:
      • res.append(True)
  7. res वापस करें

उदाहरण

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

def solve(candiesCount, queries):
    sumcandy = [candiesCount[0]]
    index = 1
    while index < len(candiesCount):
        sumcandy.append(sumcandy[index-1] + candiesCount[index])
        index += 1
    sumcandy.append(0)
    res = []
    for each in queries:
        typ = each[0]
        day = each[1]
        cap = each[2]
        if day+1 > sumcandy[typ] or (day+1)*cap <= sumcandy[typ-1]:
            res.append(False)
        else:
            res.append(True)
    return res

candiesCount = [7,4,5,3,8]
queries = [[0,2,2],[4,2,4],[2,13,100]]
print(solve(candiesCount, queries))

इनपुट

[7,4,5,3,8], [[0,2,2],[4,2,4],[2,13,100]]

आउटपुट

[True, False, True]
  1. Python में दो ट्री नोड्स को स्वैप करके बनाए जा सकते हैं या नहीं, इसकी जांच करने का प्रोग्राम Python में दो ट्री नोड्स को स्वैप करके बनाए जा सकते हैं या नहीं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास दो ट्री हैं, हमें यह जांचना है कि क्या हम पहले ट्री को दूसरे में किसी भी नोड के बाएं और दाएं सबट्री को कितनी भी बार स्वैप करके बदल सकते हैं। तो, यदि इनपुट इस तरह है तो आउटपुट True होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: que1 := root0 के साथ प्रारंभ एक कतार que2

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

    मान लीजिए हमारे पास दो लोअरकेस स्ट्रिंग्स s और t हैं, हमें जांचना है कि क्या हम s के प्रत्येक अक्षर के लिए दूसरे अक्षर (शायद वही अक्षर) में 1-टू-1 मैपिंग बना सकते हैं ताकि s को t में मैप किया जा सके। (वर्णों का क्रम नहीं बदलेगा)। उदाहरण के लिए, यदि इनपुट है s = papa, t = lili, तो आउटपुट होगा True,

  1. - सूची खाली है या नहीं जांचने का पायथन प्रोग्राम

    समस्या विवरण एक खाली सूची दी गई है। हमारा कार्य जांचना है कि यह सूची खाली है या नहीं। यहां हम जांचने का एक निहित तरीका उपयोग करते हैं। एल्गोरिदम हम एक खाली सूची लेते हैं। फिर जांचें कि यदि सूची खाली है तो 1 लौटाएं अन्यथा 0। उदाहरण कोड # खाली सूची की जांच के लिए पायथन कोड def checklist(A): if