Valid Parentheses (栈的符号匹配)

来源:互联网 发布:若水堂淘宝 编辑:程序博客网 时间:2024/06/08 17:11
很简单的利用栈进行括号匹配的题目。
当是左边的符号的时候,压进栈中。发现是右边的符号的时候,先判断其是否为空,然后与栈顶元素比较,不等直接return false

注意一点就是 最后只有栈中为空的时候才返回true。

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


1 0
原创粉丝点击