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

पायथन में चेक करें कि क्या लिस्ट को लगातार बढ़ती सबलिस्ट में विभाजित किया जा सकता है


मान लीजिए हमारे पास nums नामक संख्याओं की एक लिस्ट है जो नॉन-डिक्रीजिंग क्रम में सॉर्ट है, हमें चेक करना है कि क्या इसे किसी भी संख्या में सबसीक्वेंस में विभाजित किया जा सकता है जैसे कि प्रत्येक सबसीक्वेंस की न्यूनतम लंबाई 3 हो और वह लगातार बढ़ती हो।

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

समाधान दृष्टिकोण

इस समस्या को हल करने के लिए हम आवृत्ति गिनती और प्रारंभ/अंत बिंदुओं को ट्रैक करेंगे:

  • counts := nums के तत्वों और उनकी गिनती वाला मैप
  • starts := नई लिस्ट, ends := नई लिस्ट
  • counts के आइटम्स को सॉर्ट क्रम में प्रत्येक x के लिए:
    • यदि count[x] > count[x - 1] है, तो (count[x] - count[x - 1]) आकार की x से भरी लिस्ट starts में जोड़ें
    • यदि count[x] > count[x + 1] है, तो (count[x] - count[x + 1]) आकार की x से भरी लिस्ट ends में जोड़ें
  • यदि सभी (start, end) पेयर (start + 2 <= end) को संतुष्ट करते हैं तो true लौटाएं, अन्यथा false

पायथन कार्यान्वयन

from collections import Counter

class Solution:
    def solve(self, nums):
        count = Counter(nums)
        starts = []
        ends = []
        for x in sorted(count):
            if count[x] > count[x - 1]:
                starts.extend([x] * (count[x] - count[x - 1]))
            if count[x] > count[x + 1]:
                ends.extend([x] * (count[x] - count[x + 1]))
        return all(s + 2 <= e for s, e in zip(starts, ends))

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

इनपुट

[6, 7, 5, 10, 13], 2

आउटपुट

True
  1. दिए गए ब्लॉक्स की सूची x = y रेखा पर सममित है या नहीं जांचने का पायथन प्रोग्राम दिए गए ब्लॉक्स की सूची x = y रेखा पर सममित है या नहीं जांचने का पायथन प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है। और यह वर्ग ब्लॉक्स की ऊंचाई को दर्शाता है, हमें जांचना है कि क्या आकृति y = x रेखा पर सममित है या नहीं। उदाहरण के लिए, यदि इनपुट nums = [7, 5, 3, 2, 2, 1, 1] है, तो आउटपुट True होगा। इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे: i := 0 j

  1. - पायथन में जांचें कि सूची सख्ती से बढ़ रही है या सख्ती से घट रही है

    मान लीजिए हमारे पास संख्याओं की एक सूची है; हमें जांचना है कि क्या सूची सख्ती से बढ़ रही है या सख्ती से घट रही है। उदाहरण के लिए, यदि इनपुट है nums = [10, 12, 23, 34, 55], तो आउटपुट होगा True, क्योंकि सभी तत्व अलग हैं और प्रत्येक तत्व पिछले से बड़ा है, इसलिए यह सख्ती से बढ़ रहा है। हल करने के चरण

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

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