20.有效括号
20.有效括号
给定一个只包括
'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
示例1 :
输入:s = "()"
输出:true示例2:
输入:s = "(){}[]"
输出:true示例3:
输入:s = "([)]"
输出:false提示:
1 <= s.length <= 104s仅由括号'()[]{}'组成
解析:很简单的解法,因为是一对括号,不管哪种,括号左右是不一样的,所以我们使用栈来解决这个问题,只要出现了左半边的括号,我们就把右半边元素入栈,当栈为空,或者元素不匹配就说明不是匹配的括号
java:
class Solution{
public boolean isValid(String s){
if(s.isEmpty())
return true;
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.empty() || c != stack.pop())
return false;
}
if(stack.empty())
return true;
return false;
}
}

浙公网安备 33010602011771号