#877. 括号匹配
括号匹配
括号匹配(martch.cpp)
【题目描述】
在一个由n对括号配对好的字符串S中,我们可以使用以下两种数字编码方式对其进行编码存储:
①P类编码:P={p1,p2,p3...,pi,...pn}。其中pi表示第i个右括号前有pi个左括号。
②W类编码:W={w1,w2,w3...,wi,...wn}。对于第i个右括号S[x],wi表示与S[x]配对的左括号到S[x]之间的右括号数(包括它自己)。
如:对于括号串S=(((()()()))),它的P类编码序列为4 5 6 6 6 6,W类编码序列为1 1 1 4 5 6。
如果已知一个括号串的P类编码序列,你能否编程求出其对应的W类编码序列呢?
【输入】
第一行一个正整数T,代表有T组输入数据。 每组测试数据输入两行,第一行输入一个正整数n,代表S中的括号对数。第二行输入n个正整数,代表该括号串的P类编码序列。
【输出】
对应每组数据输出一行。代表该组的W类编码序列。
2
6
4 5 6 6 6 6
9
4 6 6 6 6 8 9 9 9
1 1 1 4 5 6
1 1 2 4 5 1 1 3 9
【数据说明】
对于100%的数据:T<10,n<1000;
Statistics
Related
In following homework: