Python程式:查詢字母排列方式,使每個字首和字尾中的B都多於A
假設我們有一個字串,包含n個A和2n個B。我們需要找到滿足以下條件的排列數量:每個字首和字尾中B的個數都大於等於A的個數。
例如,如果輸入n = 2,則輸出為4,因為有兩個A和四個B,可能的排列是[BBAABB, BABABB, BBABAB, BABBAB]。
為了解決這個問題,我們將遵循以下步驟:
- 定義一個方法`solve`,它將接收n作為引數。
- 如果n等於1,則
- 返回1
- 如果n等於2,則
- 返回4
- 如果n是奇數,則
- 返回`find(floor((n-1)/2))^2`
- 否則,
- 返回`find(floor(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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP