括号匹配问题:
顺序扫描字符串,当前字符为(,{,[时,入栈;当为),},]时,检查是否为栈顶元素的匹配字符;若匹配,栈顶元素出栈,否则返回false;
class Solution {
public:
bool isValid(string s) {
stack<char> table;
unordered_map<char,char> map;
map['}']='{';
map[')']='(';
map[']']='['; //构造匹配对
for(int i=0;i<s.size();i++)
{
if(s[i]=='{'||s[i]=='('||s[i]=='[')
table.push(s[i]);
else
{
if(table.size()>0&&table.top()==map[s[i]])
table.pop();
else
return 0;
}
}
if(table.size()==0)
return 1;
else
return 0;
}
};