Pythonの順列
これを解決するには、次の手順に従います-
- 再帰的アプローチを使用します。これにより、リスト、開始、curr、およびresが作成されます
- リストの長さ– 1を開始する場合は、解像度にcurrを追加して、戻ります
- 指定されたリストの長さの範囲内のiの場合– 1
- インデックスの開始と(開始+(i –開始))に存在するリストの要素を交換します
- 順列(list、start + 1、curr + [list [start]]、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]]
-
指定された文字列のすべての順列を出力するPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列の可能なすべての順列を表示するために必要な文字列が与えられます。 次に、以下の実装のソリューションを見てみましょう- 例 # conversion def toString(List): return ''.join(List) # permutations def permute(a, l, r): if l == r: print (toString(a)) e
-
Pythonのissuperset()
この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',