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

Python में दी गई सूची वैध स्थिति में है या नहीं, इसकी जांच करने का प्रोग्राम


मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हमें यह जांचना है कि क्या हर संख्या को निम्नलिखित नियमों में से एक का उपयोग करके समूहीकृत किया जा सकता है: 1. सन्निकट जोड़े (a, a) 2. सन्निकट ट्रिपलेट (a, a, a) 3. सन्निकट ट्रिपलेट (a, a + 1, a + 2)

तो, यदि इनपुट nums = [7, 7, 3, 4, 5] जैसा है, तो आउटपुट True होगा, क्योंकि हम [7, 7] को एक साथ और [3, 4, 5] को एक साथ समूहित कर सकते हैं।

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

  • n := nums का आकार
  • dp := आकार n+1 की एक सूची, पहला मान True, अन्य False
  • i को 2 से n तक की रेंज में लिए, करें
    • यदि i >= 2 और dp[i-2] 0 नहीं है, तो
      • यदि nums[i-1], nums[i-2] के समान है, तो dp[i] := True
    • यदि i >= 3 और dp[i-3] 0 नहीं है, तो
      • यदि (nums[i-1], nums[i-2], nums[i-3]) समान हैं या (nums[i-1], nums[i-2]+1, nums[i-3]+2 समान हैं), तो dp[i] := True
  • dp[n] लौटाएं

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

उदाहरण


class Solution:
    def solve(self, nums):
        n = len(nums)
        dp = [True] + [False] * n
        for i in range(2, n + 1):
            if i >= 2 and dp[i - 2]:
                if nums[i - 1] == nums[i - 2]:
                    dp[i] = True
            if i >= 3 and dp[i - 3]:
                if (nums[i - 1] == nums[i - 2] == nums[i - 3]) or (nums[i - 1] == nums[i - 2] + 1 == nums[i - 3] + 2):
                    dp[i] = True
        return dp[n]

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

इनपुट

[8, 8, 4, 5, 6]

आउटपुट

True
  1. Python में दिया गया ट्री सममित ट्री है या नहीं, इसकी जांच करने का प्रोग्राम Python में दिया गया ट्री सममित ट्री है या नहीं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें यह जांचना है कि ट्री सममित ट्री है या नहीं। एक ट्री को सममित कहा जाएगा यदि यह उसके दर्पण छवि लेने पर समान हो। इन दो ट्री में से पहला सममित है, लेकिन दूसरा नहीं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे। हम निम्नलिखित चरणों को रिकर्सिवली कॉल करे

  1. पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं

    मान लीजिए हमारे पास एक अविकल्पित ग्राफ है, हमें जांचना है कि ग्राफ द्विभाजित है या नहीं। जैसा कि हम जानते हैं, एक ग्राफ द्विभाजित होता है जब हम ग्राफ के नोड्स को दो सेट A और B में विभाजित कर सकते हैं ताकि ग्राफ में प्रत्येक किनारा {u,v} का एक नोड u A में और दूसरा नोड v B में हो। उदाहरण के लिए, यदि

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

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