Giả sử chúng ta có một chuỗi với n số A và 2n số B. Chúng ta phải tìm số cách sắp xếp có thể sao cho trong mỗi tiền tố và mỗi hậu tố có số chữ B lớn hơn hoặc bằng số chữ A
Vì vậy, nếu đầu vào là n =2, thì đầu ra sẽ là 4 vì có hai chữ A và bốn chữ B, vì vậy cách sắp xếp có thể là [BBAABB, BABABB, BBABAB, BABBAB].
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- Xác định một phương pháp giải quyết, điều này sẽ mất n
- nếu n giống 1, thì
- trả lại 1
- nếu n giống 2 thì
- trả về 4
- nếu n lẻ, thì
- kết quả trả về (tầng của (n-1) / 2) ^ 2
- nếu không,
- kết quả tìm lại (tầng của n / 2) ^ 2
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(n): if n==1: return 1 if n==2: return 4 if n%2 != 0: return solve((n-1)//2)**2 else: return solve(n//2)**2 n = 2 print(solve(n))
Đầu vào
2
Đầu ra
4