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

पायथन में हम अधिक से अधिक लोगों को खुश करने का कार्यक्रम ढूंढ सकते हैं

मान लीजिए कि हमारे पास एक सूची ग्राहक और एक अन्य सूची मूड है, ये दोनों समान लंबाई के हैं, हमारे पास एक और पूर्णांक k है। अब प्रत्येक मिनट पर, ग्राहक [i] स्टोर पर लोगों की संख्या आती है और जब मूड [i] =1 होता है, तो यह इंगित करता है कि ग्राहक खुश हैं और जब मूड [i] =0, तो वे दुखी होते हैं। हम k मूड के आकार की एक सबलिस्ट को 1s पर सेट कर सकते हैं, अंत में हमें उन लोगों की अधिकतम संख्या ढूंढनी होगी जिन्हें हम खुश कर सकते हैं।

इसलिए, यदि इनपुट ग्राहकों की तरह है =[2, 3, 6, 6, 3] मूड =[1, 1, 0, 0, 0] k =2, तो आउटपुट 17 होगा क्योंकि अगर हम मूड सेट करते हैं [2] ] और मूड[3] से 1, तो कुल मूड 2 + 3 + 6 + 6 =17 ग्राहक खुश होंगे।

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

  • n :=मूड का आकार
  • a :=आकार की एक सूची (n + 1) और 0 से भरें
  • s :=0
  • मैं के लिए 0 से n -1 की सीमा में, करो
    • a[i + 1] :=a[i]
    • अगर मूड[i] शून्य नहीं है, तो
      • s :=s + ग्राहक[i]
    • अन्यथा,
      • a[i + 1] :=a[i + 1] + ग्राहक[i]
  • घ :=0
  • के लिए k से n की श्रेणी में, करते हैं
    • d :=अधिकतम d और (a[i] - a[i - k])
  • रिटर्न एस + डी

उदाहरण

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

def solve(customers, mood, k):
   n = len(mood)
   a = [0] * (n + 1)
   s = 0
   for i in range(n):
      a[i + 1] = a[i]
      if mood[i]:
         s += customers[i]
      else:
         a[i + 1] += customers[i]
   d = 0
   for i in range(k, n + 1):
      d = max(d, a[i] - a[i - k])
   return s + d

customers = [2, 3, 6, 6, 3]
mood = [1, 1, 0, 0, 0]
k = 2
print(solve(customers, mood, k))

इनपुट

[2, 3, 6, 6, 3], [1, 1, 0, 0, 0], 2

आउटपुट

17

  1. पायथन में हम जितने सिक्के एकत्र कर सकते हैं, उन्हें खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक 2D मैट्रिक्स है जहां प्रत्येक सेल कुछ सिक्के संग्रहीत करता है। अगर हम [0,0] से शुरू करते हैं, और केवल दाएं या नीचे जा सकते हैं, तो हमें नीचे दाएं कोने से अधिकतम सिक्कों की संख्या का पता लगाना होगा। तो, अगर इनपुट पसंद है 1 4 2 2 0 0 0 5 तब आउटपुट 14 होग

  1. स्ट्रिंग की संख्या खोजने के लिए प्रोग्राम जहां हम 'ए' 'ए' या 'बी' हो सकते हैं, और 'बी' पाइथन में 'बी' रहता है

    मान लीजिए कि हमारे पास केवल ए और बी के साथ एक स्ट्रिंग है। ए एस ए रह सकता है या बी में बदल सकता है, लेकिन बी को बदला नहीं जा सकता है। हमें अद्वितीय स्ट्रिंग्स की संख्या ज्ञात करनी होगी जो हम बना सकते हैं। इसलिए, यदि इनपुट s =baab जैसा है, तो आउटपुट 4 होगा, क्योंकि हम इन स्ट्रिंग्स को बना सकते हैं -

  1. पायथन कार्यक्रम अधिकतम तीन।

    तीन नंबर ए बी और सी को देखते हुए, हमारा काम यह है कि हमें दी गई संख्या में से अधिकतम तत्व को खोजना है। उदाहरण Input: a = 2, b = 4, c = 3 Output: 4 एल्गोरिदम Step 1: input three user input number. Step2: Add three numbers to list. Step 3: Using max() function to find the greatest number max(lst).