每日算法三道之N对括号能得到括号匹配的序列有哪些

核心思想:递归
思路
这里写图片描述

代码:
这里写图片描述

这里的代码是别人写的,没怎么看懂其如何组成字符串的,如果有看懂了的还麻烦告诉我,感谢感谢了。

若只是求个数就很简单了,利用动态规划思想借助一个数组就好了,代码如下:

“`

include

include

include

include

using namespace std;

/**用非递归算法只算能够形成的括号匹配个数***********/
int main01()
{
int N;
cout << “请输入括号的对数:” << endl;
cin >> N;
int *nums = new int[N + 1];
memset(nums, 0, sizeof(int)*(N + 1));

nums[0] = 1;
nums[1] = 1;
for (int i = 2; i < N + 1; i++)
{
    for (int j = 0; j < i; j++)
    {
        nums[i] += nums[j] * nums[i - j - 1];
    }
}
cout << "能够形成括号匹配字符串的个数为:" << nums[N]<<endl;
return 1;

}

猜你喜欢

转载自blog.csdn.net/rlyhaha/article/details/79476644