一、题目信息
判断括号字符集左右是否对齐
题目链接:https://leetcode.com/problems/valid-parentheses/
二、题目分析
括号字符要对齐,则逻辑相邻最近的字符必然对齐,可利用栈数据结构进行字符判断,先进后出。
三、代码
class Solution {
public:
bool isValid(string s) {
stack<char> sChar;
for (char& c : s)
{
switch(c)
{
case '(':
case '[':
case '{': sChar.push(c); break;
case ')': if (sChar.empty() || sChar.top()!='(') return false; else sChar.pop(); break;
case '}': if (sChar.empty() || sChar.top()!='{') return false; else sChar.pop(); break;
case ']': if (sChar.empty() || sChar.top()!='[') return false; else sChar.pop(); break;
default: ; // pass
}
}
return sChar.empty() ;
}
};
四、总结
栈的特点是,先进后出,可用作对称性判断