题目:括号序列
定义如下规则序列(字符串):
1.空序列是规则序列;
2.如果S是规则序列,那么(S)和[S]也是规则序列;
3.如果A和B都是规则序列,那么AB也是规则序列;
例如,下面的字符串都是规则序列:
(), [], (()), ([]), ()[()];
而这几个就不是规则序列:
(, [, )(, ([];
现在给出一些有'(',')','[',']'构成的序列,请添加少量的括号,得到一个规则的序列。
分析:
用s[i],s[j]表示字符串S的第i个字符和第j个字符,i<j,用ans[i][j]表示从第i个字符到第j个字符最少需要添加的括号数;
如果s[i]='(',s[j]=')'或
s[i]='[',s[j]=']',那么ans[i][j]=min(ans[i+1][j-1],ans[i][j]);
如果