假设我们有一个包含 n 个 A 和 2n 个 B 的字符串。我们必须找到可能的排列数量,使得在每个前缀和每个后缀中 B 的数量大于或等于 A 的数量
所以,如果输入像 n = 2,那么输出将是 4,因为有两个 A 和四个 B,所以可能的安排是 [BBAABB, BABABB, BBABAB, BABBAB]。
让我们看看以下实现以获得更好的理解 -
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