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

Chương trình tìm số cách chúng ta có thể sắp xếp các chữ cái sao cho mỗi tiền tố và hậu tố có nhiều B hơn As trong Python

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