LeetCode_20-Valid Parentheses

给定一个字符串,其中包含字符’(’,’)’,’[’,’]’,’{‘,’}’,左括号必须匹配右括号,一对匹配的括号不能单独出现单个左括号或者右括号。如:(()[])有效,[(])无效
空字符串也算是有效的。

class Solution {
public:
    bool isValid(string s) {
        int len  = s.length();
    stack<char> Tmp;
    for(int i=0; i<len; i++)
    {
      if(s[i] == '(' || s[i] == '{' || s[i] == '[')
      {
        Tmp.push(s[i]);
      }
      else if(s[i] == ')' || s[i] == '}' || s[i] == ']')
      {
          if(Tmp.empty()) return false;
        if(s[i] == ')')
        {
          if(Tmp.top() != '(')
          {
            return false;
          }
          Tmp.pop();
        }
        else if(s[i] == '}')
        {
          if(Tmp.top() != '{')
          {
            return false;
          }
          Tmp.pop();
        }
        else if(s[i] == ']')
        {
          if(Tmp.top() != '[')
          {
            return false;
          }
          Tmp.pop();
        }
      }
    }
    if(!Tmp.empty())
    {
      return false;
    }
    return true;
    }
};

可关注公众号了解更多的面试技巧

posted @ 2019-09-30 18:59  yew0  阅读(124)  评论(0编辑  收藏  举报