Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Liệt kê tất cả tổ hợp ký tự của chuỗi trong Python

Cho chuỗi s (các ký tự duy nhất). Tìm tất cả các tổ hợp ký tự của s. Nếu hai chuỗi có cùng tập ký tự, chỉ giữ chuỗi nhỏ nhất theo thứ tự từ điển.

Ví dụ: s = "pqr" → kết quả ['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p'].

Giải thuật

  • Khởi tạo mảng st_arr rỗng.
  • Duyệt i từ len(s)-1 xuống 0:
    • Với mỗi phần tử hiện có trong st_arr, thêm s[i] + phần tử đó vào st_arr.
    • Thêm s[i] vào st_arr.
  • Trả về st_arr.

Ví dụ mã Python

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))  # Output: ['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']

Đầu vào

"pqr"

Đầu ra

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