Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのサブセット


一連の数字があるとします。そのセットのすべての可能なサブセットを生成する必要があります。これは、パワーセットとも呼ばれます。したがって、セットが[1,2,3]のような場合、べき集合は[[]、[1]、[2]、[3]、[1,2]、[1,3]、[2]になります。 、3]、[1,2,3]]

手順を見てみましょう-

  • 再帰的アプローチを使用してこれを解決します。したがって、再帰的なメソッド名がsolve()と呼ばれる場合、これは数値のセット(nums)、一時的なセット(temp)、res、およびインデックスを取ります
  • resolve()関数は次のように機能します-
  • index =numsの長さの場合、tempと同じリストを作成し、resに挿入して返します
  • temp [index]:=0
  • solve(nums、temp、res、index + 1)
  • temp [index]:=1
  • solve(nums、temp、res、index + 1)
  • 主な機能は以下のようになります-
  • res:=空のリスト
  • numsと同じサイズの一時リストを作成し、これに0を入力します
  • solution(nums、temp、res、0)を呼び出します
  • main_res:=空のリスト
  • temp_res
      内のすべてのリスト
    • temp:=空のリスト
    • for i:=0からリストの長さ
      • lists [i] =1の場合、nums[i]をtempに挿入します
    • tempを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])
         #print(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. Pythonでの二分木の最大深度

    二分木が1つあるとします。その木の最大の深さを見つけなければなりません。ツリーの最大深度は、最長のパスを使用してルートからリーフに到達するためにトラバースされるノードの最大数です。ツリーが次のようになっているとします。ここでは深さが3になります。 これを解決するために、次の手順に従います。 ここでは、再帰的アプローチを使用します。メソッドはsolve(root、depth =0)です。 ルートが空の場合は、深さを返します それ以外の場合は、solve(left、depth + 1)とsolve(left、depth + 1)の最大値を返します 理解を深めるために、次の実装を見てみ

  2. Pythonのissuperset()

    この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',