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

Chương trình tìm danh sách tất cả các tổ hợp chữ cái có thể có của một chuỗi s đã cho bằng Python

Giả sử chúng ta có một chuỗi s. Chúng ta phải tìm tất cả các kết hợp có thể có của các chữ cái của s. Nếu có hai chuỗi với cùng một bộ ký tự, thì hãy hiển thị từ vựng nhỏ nhất trong số đó. Và một hạn chế là mỗi ký tự trong s là duy nhất.

Vì vậy, nếu đầu vào là s =​​"pqr", thì đầu ra sẽ là ['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • st_arr:=một danh sách mới
  • đối với tôi trong phạm vi kích thước từ s - 1 đến 0, giảm đi 1, thực hiện
    • đối với j trong phạm vi 0 đến kích thước của st_arr - 1, thực hiện
      • chèn (s [i] nối st_arr [j]) vào cuối st_arr
    • chèn s [i] vào cuối st_arr
  • return st_arr

Ví dụ

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

def solve(s):
   st_arr = []

   for i in range(len(s)-1,-1,-1):
      for j in range(len(st_arr)):
         st_arr.append(s[i]+st_arr[j])
      st_arr.append(s[i])
   return st_arr

s = "pqr"
print(solve(s))

Đầu vào

"pqr"

Đầu ra

['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']