Golang | Leetcode Golang题解之第32题最长有效括号

题目:

题解:

Go 复制代码
func longestValidParentheses(s string) int {
    left, right, maxLength := 0, 0, 0
    for i := 0; i < len(s); i++ {
        if s[i] == '(' {
            left++
        } else {
            right++
        }
        if left == right {
            maxLength = max(maxLength, 2 * right)
        } else if right > left {
            left, right = 0, 0
        }
    }
    left, right = 0, 0
    for i := len(s) - 1; i >= 0; i-- {
        if s[i] == '(' {
            left++
        } else {
            right++
        }
        if left == right {
            maxLength = max(maxLength, 2 * left)
        } else if left > right {
            left, right = 0, 0
        }
    }
    return maxLength
}

func max(x, y int) int {
    if x > y {
        return x
    }
    return y
}
相关推荐
周杰伦_Jay1 小时前
【Go/Python/Java】基础语法+核心特性对比
java·python·golang
练习时长一年1 小时前
LeetCode热题100(搜索插入位置)
数据结构·算法·leetcode
(●—●)橘子……2 小时前
记力扣557.反转字符串中的单词 练习理解
算法·leetcode·职场和发展
serendipity_hky2 小时前
【go语言 | 第3篇】go中类的封装、继承、多态 + 反射
开发语言·后端·golang·反射
sprintzer3 小时前
12.06-12.15力扣分治法刷题
算法·leetcode
月明长歌3 小时前
【码道初阶】【牛客BM30】二叉搜索树与双向链表:java中以引用代指针操作的艺术与陷阱
java·数据结构·算法·leetcode·二叉树·笔试·字节跳动
刃神太酷啦3 小时前
Linux 进程核心原理精讲:从体系结构到实战操作(含 fork / 状态 / 优先级)----《Hello Linux!》(6)
java·linux·运维·c语言·c++·算法·leetcode
小李小李快乐不已3 小时前
数组&&矩阵理论基础
数据结构·c++·线性代数·算法·leetcode·矩阵
SiYuanFeng3 小时前
新手leetcode快速刷题指南
算法·leetcode·职场和发展
长安er3 小时前
LeetCode 77/216/22组合型回溯法-组合 / 组合总和 III / 括号生成)
数据结构·算法·leetcode·剪枝·回溯