九度 1342 寻找最长合法括号序列II
2011-12-09 11:11
183 查看
http://ac.jobdu.com/problem.php?id=1342
开始时没太读懂题, “去掉一些括号" 其实换句话说,就是看看有多少括号匹配过。。。 比上一个容易些,不用管连续不连续,用上一题的代码就可以
开始时没太读懂题, “去掉一些括号" 其实换句话说,就是看看有多少括号匹配过。。。 比上一个容易些,不用管连续不连续,用上一题的代码就可以
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <stack> using namespace std; int N; char str[1000002]; bool flags[1000002] = { false }; stack < int >S; bool match(char a,char b) { if(a=='('&&b==')') return true; return false; } int main () { while (scanf("%s",str)!= EOF) { //scanf ("%s", str); while (!S.empty ()) S.pop (); memset (flags, false, sizeof (flags)); S.push (0); int i, j; int len = strlen (str) - 1; for (i = 1; i <= len; i++) { if (S.empty ()) S.push (i); else if (match (str[S.top ()], str[i])) { flags[i] = true; flags[S.top ()] = true; S.pop (); } else S.push (i); } int max_len=0; for(i=0;i<=len;i++) if(flags[i]) max_len++; printf("%d\n",max_len); } }
相关文章推荐
- 九度笔记之 1342:寻找最长合法括号序列II(25分)-给括号当红娘,解决最长合法字符串问题
- 【九度】题目1342:寻找最长合法括号序列II(25分)
- 九度题目1342:寻找最长合法括号序列II
- 九度OJ 1342:寻找最长合法括号序列II (DP)
- 九度 题目1342:寻找最长合法括号序列II(25分)
- 九度OJ 1342:寻找最长合法括号序列II (DP)
- 九度笔记之 1337:寻找最长合法括号序列
- 九度 题目1337:寻找最长合法括号序列
- 【九度】题目1337:寻找最长合法括号序列
- 寻找最长合法括号序列九度0J
- 九度 1337 寻找最长合法括号序列
- [Jobdu] 题目1337:寻找最长合法括号序列
- 51nod 1478 括号序列的最长合法子段(栈-括号匹配寻找最长合法子串长度及其个数)
- 九度OJ 1337:寻找最长合法括号序列 (DP)
- 九度OJ 1337:寻找最长合法括号序列 (DP)
- 字符串空格替换、合法括号序列判断、最长无重复子串长度
- 最长合法括号序列
- leetcode 522. Longest Uncommon Subsequence II 最长非公共子序列 + 暴力寻找子串
- Longest Valid Parentheses(最长合法括号对长度)
- LongestValidParentheses, 求最长合法括号子串长度-----同类问题ValidParentheses,GenerateParentheses