LeetCode---Valid Parentheses

来源:互联网 发布:电脑屏幕录像软件2017 编辑:程序博客网 时间:2024/05/17 22:21

题目大意:给出一个由括号组成的字符串,判断该字符串是否有效。有效字符串是每种括号必须正确匹配:(),[ ] , {  }  不正确的匹配:(],{  ), ((((

算法思想:扫描字符创,如果遇到左括号则压入栈,如果遇到右括号则和栈顶元素进行匹配,如果匹配正确则将栈顶元素出栈,如果不匹配则放会False。当字符串扫描完毕后,如果栈为空则返回TRUE,否则返回False。

代码如下:

class Solution {public:    bool isValid(string s) {          stack<char> z;        for(int i=0;i<s.size();i++){             if(s[i]=='('||s[i]=='{'||s[i]=='[')                 z.push(s[i]);             //cout<<"test:"<<z.size()<<endl;             if(s[i]==')'||s[i]=='}'||s[i]==']')                 if(z.empty()) return false;                 else{                     //cout<<"Hello"<<s[i]<<endl;                     switch(s[i]){                           case ')':                              if(z.top()=='('){ z.pop();}                              else return false;                              break;                         case ']':                              if(z.top()=='['){ z.pop();}                              else return false;                              break;                         case '}':                              if(z.top()=='{'){ z.pop();}                              else return false;                              break;                        default :                              return false;                     }                 }        }        if(z.empty())          return true;        else           return false;         }};


0 0
原创粉丝点击