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

पायथन में क्रमपरिवर्तन


मान लीजिए कि हमारे पास अलग-अलग पूर्णांकों का संग्रह है; हमें सभी संभावित क्रमपरिवर्तन खोजने होंगे। तो अगर सरणी [2,1,3] की तरह है, तो परिणाम [[1,2,3], [1,3,2], [2,1,3], [2,3,1] होगा ], [3,1,2], [3,2,1]]

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

  • हम पुनरावर्ती दृष्टिकोण का उपयोग करेंगे, इससे सूची, प्रारंभ, वक्र और पुन:बन जाएगी
  • यदि प्रारंभ> सूची की लंबाई -1, फिर रेस में curr जोड़ें, और वापस लौटें
  • के लिए मैं श्रेणी में दी गई सूची की लंबाई शुरू करने के लिए - 1
    • सूचकांक प्रारंभ में मौजूद सूची के तत्वों को स्वैप करें और (प्रारंभ + (i - प्रारंभ))
    • क्रमपरिवर्तन (सूची, प्रारंभ + 1, curr + [सूची [प्रारंभ]], res)
    • सूचकांक प्रारंभ में मौजूद सूची के तत्वों को स्वैप करें और (प्रारंभ + (i - प्रारंभ))
    • शुरुआत में क्रमपरिवर्तन को कॉल करें(arr, 0, [], res)

उदाहरण (पायथन)

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

class Solution(object):
   def permute(self, nums):
      result = []
      self.permute_util(nums,0,[],result)
      return result
   def permute_util(self,given_list,start,curr,result):
      if start > len(given_list)-1:
         #print(curr)
         result.append(curr)
         return
      for i in range(start,len(given_list)):
         self.swap(given_list,start,start+(i-start)) self.permute_util(given_list,start+1,curr+[given_list[start]],result)
         #print(given_list)
         self.swap(given_list, start, start + (i - start))
   def swap(self,nums,index1,index2):
      temp = nums[index1]
      nums[index1] = nums[index2]
      nums[index2] = temp
ob1 = Solution()
print(ob1.permute([1,2,3,4]))

इनपुट

[1,2,3,4]

आउटपुट

[[1,2,3,4],[1,2,4,3],[1,3,2,4],[1,3,4,2],[1,4,3,2],[1,4,2,3],[2,1,3,4],[2,1,4,3],[2,3,1,4],[2,3,4,1],[2,4,3,1],[2,4,1,3],[3,2,1,4],[3,2,4,1],[3,1,2,4],[3,1,4,2],[3,4,1,2],[3,4,2,1],[4,2,3,1],[4,2,1,3],[4,3,2,1],[4,3,1,2],[4,1,3,2],[4,1,2,3]]

  1. किसी दिए गए स्ट्रिंग के सभी क्रमपरिवर्तन मुद्रित करने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक स्ट्रिंग दी गई है जिसकी हमें स्ट्रिंग के सभी संभावित क्रमपरिवर्तन प्रदर्शित करने की आवश्यकता है। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # conversion def toString(List):    return &

  1. issuperset () पायथन में

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

  1. पायथन में किसी सूची के सभी क्रमपरिवर्तन कैसे उत्पन्न करें?

    पायथन में सूची के सभी क्रमपरिवर्तन खोजने के लिए आप itertools पैकेज की क्रमपरिवर्तन विधि का उपयोग कर सकते हैं। आप इसे इस प्रकार उपयोग कर सकते हैं - उदाहरण import itertools perms = list(itertools.permutations([1, 2, 3])) print(perms) आउटपुट यह आउटपुट देगा - [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1)