Language:
Brackets
Description We give the following inductive definition of a “regular brackets” sequence:
For instance, all of the following character sequences are regular brackets sequences:
while the following character sequences are not:
Given a brackets sequence of characters a1a2 … an, your goal is to find the length of the longest regular brackets sequence that is a subsequence of s. That is, you wish to find the largest m such that for indices i1, i2, …, im where 1 ≤ i1 < i2 < … < im ≤ n, ai1ai2 … aim is a regular brackets sequence. Given the initial sequence Input The input test file will contain multiple test cases. Each input test case consists of a single line containing only the characters Output For each input case, the program should print the length of the longest possible regular brackets subsequence on a single line. Sample Input ((()))
()()()
([]])
)[)(
([][][)
end Sample Output 6
6
4
0
6 Source
一道很古典的区间DP。。。。水过。。。
dp[ sta] [ed] = { if(两端匹配 ) min(dp[sta+1][ed-1]+2,dp[sta][k]+dp[k+1][ed]) (sta<=k<ed)
else min(dp[sta][k]+dp[k+1][ed]) (sta<=k<ed)
}
|
POJ 2955-Brackets
最新推荐文章于 2022-06-04 19:06:01 发布