给定一个小写字母和左右括号组成的字符串,要求去除最小数目的括号,使得字符串成为有效的字符。
示例:输入:")))((" 输出 ""
输入:a)b(c)d 输出 ab(c)d
解题思路:依旧是采用栈的入栈和出栈,遍历字符串,左括号入栈,右括号出栈。此处要删除元素,所以入栈的应该是遍历字符串的下标。然后根据栈中的数据放入集合,作为去除元素的依据,依据集合中的元素去除字符串中与之对应的字节。
特别要注意的是,当栈为空的时候,如果遍历到右括号,应当把当前遍历的小标存到集合中,作为去除元素的依据。

来人,上代码
class Solution { public String minRemoveToMakeValid(String s) { LinkedList stack = new LinkedList(); List tlist = new ArrayList(); for(int i = 0; i
博客围绕去除由小写字母和左右括号组成的字符串中最小数目的括号,使字符串有效展开。解题采用栈的入栈和出栈,入栈为字符串下标,依据栈中数据和集合去除对应字节,还提到栈为空时遇到右括号的处理。
6007

被折叠的 条评论
为什么被折叠?



