挑战编程: 最长有效括号的长度
2013-07-22 17:19
288 查看
/* 给定只包含括号字符'('和 ')''的字符串,请找出最长的有效括号内子括号的长度。 举几个例子如下: 例如对于"( ()",最长的有效的括号中的子字符串是"()" ,有效双括号数1个,故它的长度为 2。 再比如对于字符串") () () )",其中最长的有效的括号中的子字符串是"() ()",有效双括号数2个,故它的长度为4。 再比如对于"( () () )",它的长度为6。 换言之,便是有效双括号"()"数的两倍。 给定函数原型int longestValidParentheses(string s),请完成此函数,实现上述功能。 */ #include <iostream> #include <string> using namespace std; int longestValidParentheses(string s); int main() { while (1) { string str; cin >> str; int result = longestValidParentheses(str); cout << result; } getchar(); return 0; } int longestValidParentheses(string s) { int result = 0; int lenIndex = s.size(); int indexResult[1024] = {0}; for (int i = 0; i < lenIndex; i ++) { indexResult[i] = i; } int index = 0; string content = s; for (int i = 0; i < lenIndex - 1;) { char str[2]; str[0] = content[indexResult[i]]; str[1] = content[indexResult[i+1]]; if (content[indexResult[i]] == '(' && content[indexResult[i+1]] == ')') { //result = indexResult[i+1] - indexResult[i] + 1; for (int j = i; j < lenIndex; j++) { indexResult[j] = indexResult[j+2]; } lenIndex = lenIndex - 2; i = 0; } else i ++; } if (lenIndex == 0) { result = s.size(); } else if (lenIndex == s.size()) { result = 0; } else { if(indexResult[0] != 0) { for (int i = lenIndex; i > 0; i--) { indexResult[i] = indexResult[i - 1]; } indexResult[0] = -1; lenIndex ++; } if (indexResult[lenIndex - 1] != s.size() - 1) { indexResult[lenIndex] = s.size(); lenIndex ++; } for(int i = 0; i < lenIndex - 1; i ++) { int max = indexResult[i+1] - indexResult[i] - 1; if (max > result) result = max ; } } return result; }
相关文章推荐
- 庞果网在线编程之最长有效括号长度问题ruby解答
- 庞果网:最长有效括号的长度(挑战失败,代码如下,求指教)
- 在线编程:最长有效括号的长度
- Longest Valid Parentheses (求最长有效匹配括号子串的长度)
- 求最长有效匹配括号子串的长度(Longest Valid Parentheses)
- LeetCode: Longest Valid Parentheses (求最长有效匹配括号子串的长度)
- leetcode 32. Longest Valid Parentheses 最长有效括号长度
- 找出最长的有效括号内子括号的长度
- [序]最长有效括号的长度-动态规划--英雄会
- 最长的有效括号序列长度
- Longest Valid Parentheses (求最长有效匹配括号子串的长度)
- LeetCode | 32. Longest Valid Parentheses——最长有效括号匹配长度
- 括号字符串的有效性和最长有效长度
- Longest Valid Parentheses (求最长有效匹配括号子串的长度)
- 最长有效括号长度(from pongo)
- 最长有效括号长度
- 栈——longest-valid-parentheses(最长有效括号长度)
- 字符串问题---括号字符串的有效性和最长有效长度
- 练手系列(2) 最长有效括号的长度
- 最长有效括号的长度--英雄会