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
}
相关推荐
Once_day11 分钟前
代码训练LeetCode(23)随机访问元素
算法·leetcode
小河豚oO27 分钟前
LeetCode 热题 100 - 哈希 - 128
算法·leetcode·哈希算法
客卿12328 分钟前
力扣100题之128. 最长连续序列
算法·leetcode·哈希算法
T1an-128 分钟前
【力扣链表篇】206.反转链表
算法·leetcode·链表
Once_day2 小时前
代码训练LeetCode(24)数组乘积
算法·leetcode
月忆3646 小时前
go语言的锁
golang
编程绿豆侠7 小时前
力扣HOT100之二分查找: 34. 在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode
fashia8 小时前
Java转Go日记(六十):gin其他常用知识
开发语言·后端·golang·go·gin
一只特立独行的兔先森8 小时前
WordZero:让Markdown与Word文档自由转换的Golang利器
golang·word·word自动化
LL_xjbt9 小时前
代码随想录刷题day29
算法·leetcode·动态规划