本文主要记录一下leetcode栈之有效的括号网络
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需知足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: false 示例 5: 输入: "{[]}" 输出: true 来源:力扣(LeetCode) 连接:https://leetcode-cn.com/problems/valid-parentheses 著做权归领扣网络全部。商业转载请联系官方受权,非商业转载请注明出处。
class Solution { public boolean isValid(String s) { Stack<Character>stack = new Stack<Character>(); for(char c: s.toCharArray()){ if(c=='(')stack.push(')'); else if(c=='[')stack.push(']'); else if(c=='{')stack.push('}'); else if(stack.isEmpty()||c!=stack.pop())return false; } return stack.isEmpty(); } }
这里借助栈,而后遍历每一个char,针对(
、[
、{
分别push对应配对的char,其余的则判断stack是否为空或者pop出来的值是否与之相等,若是不等则返回false,若是遍历完以后,stack不为空则返回false,为空返回true。code