20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = "()"
输出:true
示例 2:输入:s = "()[]{}"
输出:true
示例 3:输入:s = "(]"
输出:false
提示:
1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/valid-parentheses
class Solution {
public:bool isValid(string s) {if(s.size()%2!=0)return false;stack<char> sta;for(int i=0;i<s.size();i++){if(s[i]=='(')sta.push(')');else if(s[i]=='{')sta.push('}');else if(s[i]=='[')sta.push(']');else if(sta.empty()||s[i]!=sta.top())//如果栈提前空的话意味着有多余的括号return false;elsesta.pop();}return sta.empty();//如果栈没空的话意味着缺少匹配的括号}
};