#include<set>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int dp[120][120];
int M = 108;
int main()
{
int i, j, k ,m, t, n, a, b;
char s[120];
scanf("%d",&t);
while(t--)
{
scanf("%s",s);
memset(dp,0,sizeof(dp));
n = strlen(s);
for ( i = 0; i < n; i++) //初始化,只有一个字符,当然为1
dp[i][i] = 1;
for (m = 1; m < n; m++) // 区间长度 -1,即长度从2开始
{
for ( i = 0; i < n-m; i++) // 区间左端点
{
j = i + m; // 区间右端点
dp[i][j] = M; //最大值
if(s[i] == '(' && s[j] == ')' || s[i] == '[' && s[j] == ']')
dp[i][j
nyoj 15 括号匹配(二)
最新推荐文章于 2017-08-24 04:07:00 发布