与i个字符串里只有左括号和右括号,求连续的完整括号最大长度。
()()()=>6、())(()()=>4 肯定是偶数,根据题目描述,如果要括号个数就除以2
中断条件:遇到了一个多余的右括号
中断的时候结算长度
附上C语言代码:
int length(char[] s){ int depth = 0, start = -1, length = 0; for(int i=0; s[i]!='\0'; i++){ if(s[i]=='('){ if(start < 0) start = i; depth++; } else if(start >= 0){ if(depth > 0) depth--; else{ int cur_length = i - start +1; length = length > cur_length ? length : cur_length ; start = -1; } } } return length; }