给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。
示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()" 示例 2: 输入: ")()())" 输出: 4 解释: 最长有效括号子串为 "()()"分析题目,很容易可以知道一点,给定字符串一定是由有效括号字符串和无效字符拼接起来的。
反过来看,给定字符串就是被许多无效字符隔开的有效括号串,我们要求的就是被分割的字符串中的最长的那个。
有了这个思路,但是一直卡着没办法实现, 评论区这位大佬给了我思路,嘿。
我们如何知道哪些左括号是多余的?遍历一遍后剩下的就是多余的,只要入栈的是左括号的ID,那么最后我们就知道哪些是多余左括号了。
执行用时:52 ms, 在所有 Python3 提交中击败了87.15%的用户 内存消耗:14.4 MB, 在所有 Python3 提交中击败了11.11%的用户