首页 > 其他 > 详细

Leetcode Longest Valid Parentheses

时间:2015-05-11 12:53:35      阅读:180      评论:0      收藏:0      [点我收藏+]

我的错误代码:

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 int longestValidParentheses(string s)
 6 {
 7     int i = 0;
 8     int L = s.length();
 9     int j;
10     int max = 0;
11     while (i < L)
12     {
13         int left = 0;
14         int right = 0;
15         if (s[i] == ()
16         {
17             left++;
18             j = i + 1;
19             int index = i-1;
20             while (j<L&&left >= right)
21             {
22                 if (left == right)
23                     index = j-1;
24                 if (s[j] == ()
25                     left++;
26                 else
27                     right++;
28                 j++;
29             }
30             if (right >= left)
31             {
32                 if (left*2>max)
33                     max = left * 2;
34                 i = j;
35             }
36             else
37             {
38                 if (index == i - 1)
39                     ;
40                 else
41                 {
42                     int leftSum = index - i + 1;
43                     int rightSum = j - i - (left - right) - leftSum;
44                     if (leftSum > max)
45                         max = leftSum;
46                     if (rightSum > max)
47                         max = rightSum;
48                     if (leftSum > rightSum)
49                         i = index;
50                     else
51                         i = j;
52                 }
53             }
54         }
55         i++;
56     }
57     return max;
58 }
59 
60 int main()
61 {
62     string s = "(()(((()";
63     cout << longestValidParentheses(s) << endl;
64 }

 

Leetcode Longest Valid Parentheses

原文:http://www.cnblogs.com/chaiwentao/p/4494071.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!