leetcode 20 有效的括号

leetcode 20 有效的括号

思路:

  1. 将左括号入栈
  2. 遇到右括号,则判断与栈顶的括号是否匹配,需要注意栈是否为空,
  3. 最后还需判断栈是否为空
class Solution {
public:
    bool isValid(string s) {
    map<char,char>mp;
    mp[')']='(';
    mp[']']='[';
    mp['}']='{';
    stack<char> ss;
    char ch;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='('|| s[i]=='[' ||s[i]=='{')
            ss.push(s[i]);
        else if(s[i]==')' || s[i]==']' ||s[i]=='}')
        {
            if(ss.empty())
                return false;
            ch=ss.top();
            if(mp[s[i]]!=ch)
                return false;
            ss.pop();
        }
    }
    if(ss.empty())
        return true;
    return false;
    }
};

你可能感兴趣的:(leetcode 20 有效的括号)