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

ऑपरेटर रखकर 24 बना सकते हैं या नहीं जांचने का पायथन प्रोग्राम


मान लीजिए हमारे पास चार संख्याओं की एक सूची है, प्रत्येक संख्या 1 से 9 की रेंज में है, एक निश्चित क्रम में। अब यदि हम संख्याओं के बीच +, -, *, और / (/ पूर्णांक विभाजन को दर्शाता है) ऑपरेटर रखते हैं, और उन्हें ब्रैकेट से समूहित करते हैं, तो हमें जांचना है कि क्या मान 24 प्राप्त करना संभव है या नहीं।

उदाहरण के लिए, यदि इनपुट nums = [5, 3, 6, 8, 7] है, तो आउटपुट True होगा, क्योंकि (5 * 3) - 6 + (8 + 7) = 24।

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

  • एक फ़ंक्शन recur() परिभाषित करें। यह arr लेगा
  • answer := एक नई सूची
  • i को 0 से arr के आकार - 1 तक के लिए, करें
    • pre := recur(arr[0 से i तक])
    • suf := recur(arr[i + 1 से अंत तक])
    • प्रत्येक k के लिए pre में, करें
      • प्रत्येक j के लिए suf में, करें
        • (k + j) को answer के अंत में डालें
        • (k - j) को answer के अंत में डालें
        • (k * j) को answer के अंत में डालें
        • यदि j 0 नहीं है, तो
          • (k / j का भागफल) को answer के अंत में डालें
  • यदि answer का आकार 0 है और arr का आकार 1 है, तो
    • arr[0] को answer के अंत में डालें
  • answer लौटाएं
  • मुख्य विधि से जांचें कि 24 recur(nums) में है या नहीं, यदि हां तो True लौटाएं, अन्यथा False

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

उदाहरण

class Solution:
    def solve(self, nums):
        def recur(arr):
            answer = []
            for i in range(len(arr) - 1):
                pre, suf = recur(arr[: i + 1]), recur(arr[i + 1 :])
                for k in pre:
                    for j in suf:
                        answer.append(k + j)
                        answer.append(k - j)
                        answer.append(k * j)
                        if j != 0:
                            answer.append(k // j)
            if len(answer) == 0 and len(arr) == 1:
                answer.append(arr[0])
            return answer
        return 24 in recur(nums)

ob = Solution()
nums = [5, 3, 6, 8, 7]
print(ob.solve(nums))

इनपुट

[5, 3, 6, 8, 7]

आउटपुट

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