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

पायथन में सबसेट्स (पावर सेट)

मान लीजिए हमारे पास संख्याओं का एक सेट है; हमें उस सेट के सभी संभावित सबसेट उत्पन्न करने हैं। इसे पावर सेट के रूप में भी जाना जाता है। इसलिए यदि सेट [1,2,3] जैसा है, तो पावर सेट [[], [1], [2], [3], [1,2], [1,3], [2,3], [1,2,3]] होगा।

आइए चरण देखते हैं -

  • हम इसे रिकर्सिव दृष्टिकोण का उपयोग करके हल करेंगे। इसलिए यदि रिकर्सिव मेथड का नाम solve() है, और यह संख्याओं का सेट (nums), अस्थायी सेट (temp), res और इंडेक्स लेता है
  • solve() फ़ंक्शन नीचे की तरह काम करेगा -
  • यदि इंडेक्स = nums की लंबाई, तो temp के समान एक लिस्ट बनाएं, और res में डालें और लौट जाएं
  • temp[इंडेक्स] := 0
  • solve(nums, temp, res, इंडेक्स + 1)
  • temp[इंडेक्स] := 1
  • solve(nums, temp, res, इंडेक्स + 1)
  • मुख्य फ़ंक्शन नीचे की तरह होगा -
  • res := एक खाली लिस्ट
  • nums के समान आकार का temp लिस्ट बनाएं, और इसे 0 से भरें
  • solve(nums, temp, res, 0) कॉल करें
  • main_res := एक खाली लिस्ट
  • temp_res में सभी लिस्ट्स के लिए
    • temp := खाली लिस्ट
    • i := 0 से लिस्ट्स की लंबाई तक
      • यदि लिस्ट्स[i] = 1, तो nums[i] को temp में डालें
    • temp को main_res में डालें
  • main res लौटाएं

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

उदाहरण

class Solution(object):
    def subsets(self, nums):
        temp_result = []
        self.subsets_util(nums, [0 for i in range(len(nums))], temp_result, 0)
        main_result = []
        for lists in temp_result:
            temp = []
            for i in range(len(lists)):
                if lists[i] == 1:
                    temp.append(nums[i])
            main_result.append(temp)
        return main_result

    def subsets_util(self, nums, temp, result, index):
        if index == len(nums):
            result.append([i for i in temp])
            return
        temp[index] = 0
        self.subsets_util(nums, temp, result, index + 1)
        temp[index] = 1
        self.subsets_util(nums, temp, result, index + 1)

ob1 = Solution()
print(ob1.subsets([1, 2, 3, 4]))

इनपुट

[1,2,3,4]

आउटपुट

[[], [4], [3], [3, 4], [2], [2, 4], [2, 3], [2, 3, 4], [1], [1, 4], [1, 3], [1, 3, 4], [1, 2], [1, 2, 4], [1, 2, 3], [1, 2, 3, 4]]
  1. पायथन में बाइनरी ट्री की अधिकतम गहराई पायथन में बाइनरी ट्री की अधिकतम गहराई

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें उस ट्री की अधिकतम गहराई ढूंढनी है। ट्री की अधिकतम गहराई वह अधिकतम नोड्स की संख्या है जो सबसे लंबे पथ का उपयोग करके रूट से लीफ तक पहुंचने के लिए पार की जाती है। मान लीजिए ट्री नीचे जैसा है। यहां गहराई 3 होगी। हल करने के चरण यहां हम पुनरावर्ती दृष्टिकोण क

  1. - पायथन में Sqrt(x)

    मान लीजिए हमारे पास एक संख्या x है, और x एक गैर-ऋणात्मक संख्या है। हमें किसी लाइब्रेरी फंक्शन का उपयोग किए बिना x का वर्गमूल ढूंढना है। इसलिए हमें sqrt(x) का मूल्यांकन करने के लिए अपना खुद का फंक्शन बनाना होगा। इस फंक्शन में, आउटपुट का दशमलव अंक काट दिया जाएगा। मान लीजिए x का मान 4 है, तो परिणाम 2

  1. पायथन में issuperset() फंक्शन पायथन में issuperset() फंक्शन

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे।यह मेथड बूलियन True वापस करता है यदि सेट B के सभी तत्व सेट A के सभी तत्वों को समाहित करते हैं जिसे तर्क के रूप में पारित किया जाता है और झूठा वापस करता है यदि A के सभी तत्व B में मौजूद नहीं हैं।इसका म