一个算法问题

对于只含有01两个字符的字符串,定义P串如下:
1.空串是P串。
2.如果s是P串,0s1是P串。
3.如果s1,s2都是P串,s1s2也是P串。
问包含N个0和N个1的P串有多少种。

这个问题怎么算比较快呢?如果从N=1开始往上穷举,N一大就变得好慢。

阅读 2.4k
3 个回答

把0、1分别看做是左、右括号,那么所谓的P数其实就是包含N个匹配的括号对的字串数目(P = parenthesis)。这个问题早有现成答案,就是卡特兰数

我怎么感觉说了半天也没说什么是p串,s是p串,0s1是p串,那s是什么才算是p串.

推荐问题