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

पायथन में कैंडी गेम में व्यक्ति 1 के जीतने की जांच करने का प्रोग्राम


मान लीजिए दो खिलाड़ी एक गेम खेल रहे हैं। जहां कई कैंडीज एक लाइन पर रखी हैं, और व्यक्ति 1 को nums नामक संख्याओं की एक सूची दी जाती है जो प्रत्येक कैंडी के पॉइंट मान को दर्शाती है। प्रत्येक व्यक्ति की बारी पर, वे लाइन के सामने से 1, 2, या 3 कैंडीज चुन सकते हैं, फिर उन्हें सूची से हटा दें, और उनके पॉइंट्स का योग उनके स्कोर में जुड़ जाता है। यह गेम तब समाप्त होगा जब सभी कैंडीज हटा दी जाएंगी और जिस व्यक्ति का स्कोर अधिक होगा वह विजेता होगा। हमें जांचना है कि व्यक्ति 1 यह गेम जीत सकता है या नहीं।

इसलिए, यदि इनपुट nums = [1, 1, 2, 3, 50] जैसा है, तो आउटपुट True होगा, क्योंकि व्यक्ति 1 1 कैंडी ले सकता है, फिर दूसरे खिलाड़ी को 1, 2 या 3 कैंडीज लेनी पड़ेंगी। किसी भी मामले में, व्यक्ति 1 50 मान वाली कैंडी ले सकता है।

हल करने के चरण

  • n := nums का आकार

  • table := तीन 0s वाला एक ऐरे।

  • i के लिए n - 1 से 0 तक, 1 से घटाते हुए, करें

    • profit := -infinity

    • sum_val := 0

    • j के लिए i से min(i + 3, n) तक की रेंज में, करें

      • sum_val := sum_val + nums[j]

      • profit := profit और (sum_val - table[j - i]) का अधिकतम

    • table को [profit, table[0], table[1]] मानों वाली सूची के रूप में सेट करें

  • यदि table[0] > 0 तो true लौटाएं, अन्यथा false

उदाहरण

import math

class Solution:
    def solve(self, nums):
        n = len(nums)
        table = [0, 0, 0]
        for i in range(n - 1, -1, -1):
            profit = -math.inf
            sum_val = 0
            for j in range(i, min(i + 3, n)):
                sum_val += nums[j]
                profit = max(profit, sum_val - table[j - i])
            table[:] = [profit, table[0], table[1]]
        return table[0] > 0

ob = Solution()
nums = [1, 1, 2, 3, 50]
print(ob.solve(nums))

इनपुट

[1, 1, 2, 3, 50]

आउटपुट

True
  1. - पायथन में क्षमता के भीतर अलग-अलग आइटम लेकर प्राप्त की जा सकने वाली अधिकतम राशि खोजने का प्रोग्राम

    मान लीजिए हमारे पास weights और values नामक दो सूचियां हैं जो समान लंबाई की हैं और एक अन्य संख्या capacity जिसे k कहते हैं। यहां weights[i] और values[i] iवें आइटम का वजन और मूल्य दिखाते हैं। अब, हम अधिकतम k क्षमता का वजन ले सकते हैं, और हम प्रत्येक आइटम की अधिकतम एक प्रति ले सकते हैं। हमें प्राप्त ह

  1. - पायथन में जांचें कि क्या हम शब्दों की सूची द्वारा लक्ष्य को लिख सकते हैं या नहीं

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक अन्य संख्या k है। यदि हम इंडेक्स k से शुरू करते हैं और किसी भी इंडेक्स i पर, हम बाएं या दाएं ठीक nums[i] चरण जा सकते हैं। हमें जांचना है कि क्या हम सूची के अंत तक पहुंच सकते हैं या नहीं। उदाहरण के लिए, यदि इनपुट है nums = [0, 0, 2, 1, 3, 3, 1,

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

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक स्ट्रिंग इनपुट दिए जाने पर, हमें जांचना होगा कि स्ट्रिंग खाली है या नहीं। पायथन स्ट्रिंग्स प्रकृति में इम्यूटेबल होती हैं इसलिए किसी भी ऑपरेशन को करते समय स्ट्रिंग्स को संभालते समय