Skip to content

Latest commit

 

History

History
30 lines (27 loc) · 471 Bytes

longest-valid-parenthesis.md

File metadata and controls

30 lines (27 loc) · 471 Bytes

Code

func longestValidParentheses(s string) int {
	stack := []int{-1}
	l := len(s)
	valid := 0
	solution := 0

	for i := 0; i < l; i++ {
		if string(s[i]) == "(" {
			stack = append(stack, i)
		} else {
			// ele := stack[len(stack)-1]
			stack = stack[:len(stack)-1]
			if len(stack) == 0 {
				stack = append(stack, i)
			} else {
				valid = i - stack[len(stack)-1]
				if valid > solution {
					solution = valid
				}
			}
		}
	}

	return solution
}