栈:
思路: 遇到a,b入栈,遇到c出栈即可
class Solution {
public:
// 栈,即当遇到a时入栈,当遇到b时入栈,当遇到c时出栈,ab
bool isValid(string s) {
stack<char> st;
cout<<s<<endl;
for(int i=0;i<s.size();i++){
if(s[i]=='a'||s[i]=='b'){
st.push(s[i]);
}else if(s[i]=='c'){
// 判断栈顶元素是否为b,如果是出栈,如果不是返回false
if(st.empty()) return false;
if(st.top()=='b'){
st.pop();
}else{
return false;
}
if(st.empty()) return false;
if(st.top()=='a'){
st.pop();
}else{
return false;
}
}else{
return false;
}
}
if(st.empty()){
return true;
}else{
return false;
}
}
};