题目
题目分析
一个很标准的关于栈知识点的应用,首先先初始化一个栈,再遍历字符串s,当匹配到为左边字符串是将其压入栈中,遇到右边字符串时要判断此时的栈顶元素是否与其匹配,若匹配则将栈顶元素弹出,若不匹配则报错即可。
#include<iostream>
bool IsValid(std::string s){
std::stack<char> Stack;
for(char c :s){
if(c == '(' || c == '{' || c == '['){
Stack.push(c);
}else{
if (Stack.empty()){
return false;
}
char Top = Stack.top();
if((c == ')' && Top == '(') ||(c == '}' && Top == '{')||(c == ']' && Top == '[') ){
Stack.pop();
}else{
return false;
}
}
}
return Stack.empty();
}