模拟
用一个数组存储之前的括号状态 未匹配的左括号存0 每匹配到一个存放左右括号内总括号数并输出
代码如下:
#include <cstdio>
#include <cstdlib>
using namespace std;
int zk[33],tp;
int main()
{
int t,n,l,z,v,x;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
z = tp = 0;
while(n--)
{
scanf("%d",&x);
for(; z < x; ++z)
zk[tp++] = 0;
v = 1;
while(zk[tp-1])
{
v += zk[tp-1];
tp--;
}
printf("%d ",v);
tp--;
zk[tp++] = v;
}
printf("\n");
}
return 0;
}