intlongestValidParentheses(string s){ int size = s.length(); int* flag = newint[size]; /*for (int i = 0; i < size; i++) flag[i] = -1;*/ memset(flag, -1, size); for (int i = 0; i < size; i++) { //当前第一个右括号 if (s[i] == ')') {//向前找 int j = i - 1; while (j >=0) { if (flag[j] ==-1 && s[j] == '(') { flag[j] = 0; flag[i] = 2; break; } j--; } } } for (int i = 0; i < size; i++) cout << flag[i] << " "; //找最多的连续的0 int res = 0; int con = 0; for (int i = 0; i < size; i++) { if (flag[i]==-1) { res = res > con ? res : con; con = 0; } else con++; } res = res > con ? res : con; return res; }