leetcode题目——有效的括号(java版)

文章目录

    • 题目
    • 简单分析:
    • 解答

题目

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

示例 1:

输入: “()”
输出: true
示例 2:

输入: “()[]{}”
输出: true
示例 3:

输入: “(]”
输出: false
示例 4:

输入: “([)]”
输出: false
示例 5:

输入: “{[]}”
输出: true

简单分析:

看到题目,第一反应用栈。
堆栈是一种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。

从开始遍历该字符串,如果字符和栈顶元素相同,name将该栈顶元素出栈,如果不同,将该字符进栈,遍历结束该字符串,如果该栈为空,那么返回true;反之返回false…

解答

class Solution {
public boolean isValid(String s) {
		 Stack<Character> stack = new Stack<>();
 
         for(Character c : s.toCharArray())
         {
             if (c == '(')
                 stack.push(')');
             else if (c == '[')
                 stack.push(']');
             else if (c == '{')
                 stack.push('}');
             else if (stack.isEmpty() || stack.pop() != c)
                 return false;
         }
 
         return stack.isEmpty();


    }
}

你可能感兴趣的:(leetcode刷题)