Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

각 접두사와 접미사가 Python에서 As보다 더 많은 B를 갖도록 문자를 배열할 수 있는 방법의 수를 찾는 프로그램

<시간/>

n개의 A와 2n개의 B가 있는 문자열이 있다고 가정합니다. 각 접두사와 접미사에서 B의 수가 A의 수보다 크거나 같도록 가능한 배열의 수를 찾아야 합니다.

따라서 입력이 n =2와 같으면 2개의 A와 4개의 B가 있으므로 출력은 4가 되므로 가능한 배열은 [BBAABB, BABABB, BBABAB, BABBAB]입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 해결 방법을 정의합니다. n이 소요됩니다.
  • n이 1과 같으면
    • 1을 반환
  • n이 2와 같으면
    • 4 반환
  • n이 홀수이면
    • 찾기((n-1)/2)^2의 바닥 반환
  • 그렇지 않으면
    • 찾기(n/2의 바닥)^2 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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))
반환

입력

2

출력

4