核心思想:递归
思路:
代码:
这里的代码是别人写的,没怎么看懂其如何组成字符串的,如果有看懂了的还麻烦告诉我,感谢感谢了。
若只是求个数就很简单了,利用动态规划思想借助一个数组就好了,代码如下:
“`
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;
}