Leetcode 第32题 最长有效括号
给定一个只包含 '('
和 ')'
的字符串,找出最长的包含有效括号的子串的长度。
示例 1:
输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()"
示例 2:
输入: ")()())" 输出: 4 解释: 最长有效括号子串为 "()()"
解题思
通过栈的特性。
#![allow(unused_variables)] fn main() { pub fn longest_valid_parentheses(s: String) -> i32 { let mut stack:Vec<i32>=Vec::with_capacity(100); let mut carry=-1; s.bytes().enumerate().fold(0,|s,(i,x)| if x==b'('{ stack.push(carry); carry=i as i32; s }else if let Some(z)=stack.pop(){ carry=z; s.max(i as i32-z) }else{ carry=i as i32;s } ) } }