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

Python में जांचें कि सूची में प्रत्येक सबलिस्ट में कम से कम एक अद्वितीय तत्व है या नहीं

मान लीजिए हमारे पास nums नामक तत्वों की एक सूची है, हमें जांचना है कि क्या प्रत्येक सबलिस्ट में कम से कम 1 तत्व है जो उस सबलिस्ट में ठीक एक बार होता है या नहीं। हमें इस समस्या को रैखिक समय में हल करना है।

इसलिए, यदि इनपुट है nums = [5, 10, 20, 10, 0], तो आउटपुट True होगा, क्योंकि nums में प्रत्येक सबलिस्ट में कम से कम एक तत्व है जो केवल एक बार हुआ है। [[5], [10], [20], [10], [0], [5,10], [10,20], [20,10], [10,0], [5,10,20], [10,20,10], [20,10,0], [5,10,20,10], [10,20,10,0], [5,10,20,10,0]] सभी में कम से कम एक तत्व है जिसकी आवृत्ति 1 है।

हल करने का दृष्टिकोण

  • has_unique() फ़ंक्शन परिभाषित करें। यह left, right लेगा
  • यदि left >= right, तो true लौटाएं
  • counts := nums[left से right तक इंडेक्स] में मौजूद प्रत्येक तत्व की आवृत्तियों वाला शब्दकोश
  • यदि counts से न्यूनतम आवृत्ति > 1, तो false लौटाएं
  • start := left
  • left से right तक इंडेक्स के लिए, करें:
    • यदि counts[nums[index]] 1 के समान है, तो:
      • यदि has_unique(start, index - 1) false है, तो false लौटाएं
      • start := index + 1
  • has_unique(start, right) लौटाएं
  • मुख्य विधि से, has_unique(0, nums का आकार - 1) लौटाएं

उदाहरण

from collections import Counter

def solve(nums):
    def has_unique(left, right):
        if left >= right:
            return True
        counts = Counter(nums[left: right + 1])
        if min(counts.values()) > 1:
            return False
        start = left
        for index in range(left, right + 1):
            if counts[nums[index]] == 1:
                if not has_unique(start, index - 1):
                    return False
                start = index + 1
        return has_unique(start, right)
    return has_unique(0, len(nums) - 1)

nums = [5, 10, 20, 10, 0]
print(solve(nums))

इनपुट

[5, 10, 20, 10, 0]

आउटपुट

True
  1. Python प्रोग्राम से क्रमबद्ध सूची में तत्व डालना Python प्रोग्राम से क्रमबद्ध सूची में तत्व डालना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें क्रमबद्ध क्रम को बदले बिना सूची में एक तत्व डालने की आवश्यकता है। नीचे चर्चा किए गए दो दृष्टिकोण हैं। दृष्टिकोण 1: ब्रूट-फोर्स विधि उदाहरण n: index = i break

  1. - पायथन प्रोग्राम: सबलिस्ट में दूसरे एलिमेंट के अनुसार लिस्ट को सॉर्ट करना

    लिस्ट दी गई है, हमारा कार्य सबलिस्ट में दूसरे एलिमेंट के अनुसार लिस्ट को सॉर्ट करना है। यहां हम सिंपल बबल सॉर्ट लागू करते हैं।उदाहरणInput: [[CCC, 15], [AAA, 10], [RRRR, 2], [XXXX, 150]] Output: [[RRRR, 2], [AAA, 10], [CCC, 15], [XXXX, 150]]एल्गोरिदमचरण 1: एक लिस्ट दी गई है। चरण 2: हमने नेस्टेड लूप्स

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

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