1、题目描述
2、分析
判断输入的字符串的括号是否有效,这个其实很简单了,在很早之前学习数据结构时应该都见过,这是典型的栈的应用。首先将左括号都入栈,然后在每碰到一个右括号时,判断栈顶元素是否和这个右括号匹配,如果匹配则pop。不匹配则返回false。最后判断栈是否为空,为空则所有括号都匹配,否则还是返回false。
3、代码
class Solution {
public:
bool isValid(string s) {
if(s.empty()) return true;
int len=s.size();
stack<char> a;
for(int i=0;i<len;++i){
if((s[i]=='(')||(s[i]=='[')||(s[i]=='{'))
a.push(s[i]);
else{
if(a.empty()) return false;
if((s[i]==')')&&(a.top()!='(')) return false;
if((s[i]==']')&&(a.top()!='[')) return false;
if((s[i]=='}')&&(a.top()!='{')) return false;
a.pop();
}
}
return a.empty();
}
};
4、相关知识点
栈的应用。