题目描述
输入一个长度为n的字符串(0<=n<=20)只包含’(‘和’)’。对于这个字符串如”(())”,”()()”是匹配的,”)(“,”())(“都不是括号匹配的。
删除最左边的’(‘,从剩下的字符串中删除任意的’)’,使得删除后的字符串仍然是括号匹配的。
对整个字符串重复该删除操作,直到删除了整个字符串。问这样的括号匹配方案有多少个?(只要有一次删除的右括号’)’不同则认为是一个不同的方案)
样例
输入 (((())))
输出 24输入 ()()()
输出 1
思路
由于字符串长度最大只有20,可以考虑使用暴力枚举,递归处理。
答案
#include <iostream>
#include <string>
using namespace std;
int count(string str, int len, int left) {