力扣题目——有效的括号(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();
}
}
上一篇: LeetCode 209长度最小的子数组
下一篇: 获得菜单项目名称