Advertisement

LeetCode 32. Longest Valid Parentheses

阅读量:

leetcode编码实践记录

leetcode 32. 最长有效括号
针对仅由 ‘(’ 和 ‘)’ 构成的字符串,确定其中最长的有效括号子串的长度。

示例 1:
输入: “(()”
输出: 2
解释: 最长有效括号子串为 “()”

示例 2:
输入: “)()())”
输出: 4
解释: 最长有效括号子串为 “()()”

解题思路

  1. 对字符串s进行从左至右的逐个扫描,每次以s[i]作为起始字符,寻找对应的最大有效括号子串长度;
  2. 运用递归方式计算长度,并依据左括号的数量leftNum与右括号的数量rightNum之间的关系来设定递归条件:在有效字符串中,左括号始终先于右括号出现。具体而言,(1)当rightNum等于leftNum时,表明当前存在一个完整有效的括号序列;(2)若rightNum大于leftNum,则说明当前序列无效;(3)若rightNum小于leftNum,则需继续扩展范围以寻找匹配的括号对。
复制代码
    class Solution {
    public:
    int longestValidParentheses(string s) {
        int max = 0;
        for(int i=0;i<s.size();i++){

全部评论 (0)

还没有任何评论哟~