最长有效括号
题目
给定一个只包含 ‘(‘ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。
示例 1:
输入: “(()”
输出: 2
解释: 最长有效括号子串为 “()”
示例 2:
输入: “)()())”
输出: 4
解释: 最长有效括号子串为 “()()”
思路
使用栈,本题用了栈的三个操作。
要记住,字符串等价于字符数组,字符串的每个字符都是可以等价于字符数组,所以可以利用数组的性质。
java代码
1 | ** |
总结
写完代码读一下,检查一下错误,这次有两处错误,1)s.charAt(i) == ‘()’
2)max = Math.max(max, i - peek());