欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 18:16:28
...

题目

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

有效字符串需满足:

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

示例 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();


    }
}
相关标签: 力扣刷题