#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<iostream>
#define Nes 29999999
using namespace std;
int d[110][110];
int main()
{
int n,m;
char s[105];
cin>>n;
while(n--){
cin>>s+1;
int len = strlen(s+1);
for(int i=1;i<=len;i++){
d[i][i-1] = 0;
d[i][i] = 1;
}
for(int p=1;p<=len;p++){
for(int i=1;i<=len-p;i++){
int j = i+p;
d[i][j] = Nes;
if(s[i]=='('&&s[j]==')'||(s[i]=='['&&s[j]==']'))
d[i][j] = min(d[i][j],d[i+1][j-1]) ;
else if(s[i]=='['||s[i]=='(')
d[i][j] = min(d[i][j],d[i+1][j])+1;
else if(s[j]==']'||s[j]==')')
d[i][j] = min(d[i][j],d[i][j-1]) + 1;
for(int k=i;k<=j-1;k++)
d[i][j] = min(d[i][j],d[i][k]+d[k+1][j]);
}
}
printf("%d\n",d[1][len]);
}
}
括号配对 2
最新推荐文章于 2021-09-20 21:52:06 发布