有效的括号
description
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。
示例 1:
输入: "()" 输出: true
示例 2:
输入: "()[]{}" 输出: true
示例 3:
输入: "(]" 输出: false
示例 4:
输入: "([)]" 输出: false
示例 5:
输入: "{[]}" 输出: true
thought
建立一个新的栈,遍历字符串的字符。取到左边类型的字符,就压入栈。即
'(''{''['
如果右边类型的字符,则取出栈元素。根据栈先进先出的特性,如果相等,那么就是有效的括号。返回true
最后返回栈是否为空,如果是有效的括号,栈中的元素应该已经全部取出了。
code
public class ValidParentheses {
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();
}
}
end
感谢。2020-08-22