Computer >> Máy Tính >  >> Lập trình >> Python

Các tập con bằng Python

Giả sử chúng ta có một bộ số; chúng ta phải tạo tất cả các tập con có thể có của tập hợp đó. Đây còn được gọi là bộ nguồn. Vì vậy, nếu tập hợp giống như [1,2,3], thì tập hợp lũy thừa sẽ là [[], [1], [2], [3], [1,2], [1,3], [2 , 3], [1,2,3]]

Hãy để chúng tôi xem các bước -

  • Chúng tôi sẽ giải quyết vấn đề này bằng cách sử dụng phương pháp đệ quy. Vì vậy, nếu tên phương thức đệ quy được gọi là giải quyết () và điều này nhận tập hợp các số (nums), tập hợp tạm thời (tạm thời), res và chỉ mục
  • Hàm giải quyết () sẽ hoạt động như bên dưới -
  • if index =length of nums, sau đó tạo một danh sách giống như danh sách tạm thời, chèn vào res và trả về
  • tạm thời [chỉ số]:=0
  • giải quyết (nums, temp, res, index + 1)
  • tạm thời [chỉ mục]:=1
  • giải quyết (nums, temp, res, index + 1)
  • Chức năng chính sẽ giống như bên dưới -
  • res:=một danh sách trống
  • tạo danh sách tạm thời có kích thước giống như các số và điền vào danh sách này bằng 0
  • gọi giải quyết (nums, temp, res, 0)
  • main_res:=một danh sách trống
  • cho tất cả các danh sách trong temp_res
    • temp:=danh sách trống
    • for i:=0 to length of list
      • nếu danh sách [i] =1, thì hãy chèn nums [i] vào tạm thời
    • chèn tạm thời vào main_res
  • trả lại độ phân giải chính

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

 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 danh sách trong temp_result:temp =[] cho tôi trong phạm vi (len (danh sách)):if danh sách [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]))  

Đầu vào

 [1,2,3,4] 

Đầu ra

 [[], [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] ]