题目
n个数进出栈的顺序有多少种?假设栈的容量无限大。
给定一个整数n,请返回所求的进出栈顺序个数。保证结果在int范围内。
测试样例:
1
返回:1
思路
卡特兰数。
代码
class Stack:
def get_arrange(self, n, num):
count = 1
num1, num2 = 1, 1
while count <= num:
num1 *= n
n -= 1
num2 *= count
count += 1
return num1 // num2
def countWays(self, n):
# write code here
return self.get_arrange(2 * n, n) // (n + 1)