@requires_authorization
@author johnsondu
@create_time 2015.7.13 11:03
@url [valid parentheses](https:
/*****************
* 类别: 栈模拟推断
* 时间复杂度: O(n)
* 空间复杂度: O(n)
****************/
class Solution {
public:
bool isValid(string s) {
stack<char> st;
int len = s.size();
for(int i = 0; i < len; i ++){
if(s[i] == ']' || s[i] == '}' || s[i] == ')'){
if(st.empty()){
return false;
}
}
else{
st.push(s[i]);
continue;
}
if(s[i] == ']'){
char ch = st.top();
st.pop();
if(ch != '[') return false;
continue;
}
if(s[i] == ')'){
char ch = st.top();
st.pop();
if(ch != '(') return false;
continue;
}
if(s[i] == '}'){
char ch = st.top();
st.pop();
if(ch != '{') return false;
continue;
}
}
if(st.empty()) return true;
else return false;
}
};