括号序列
利用数据结构栈,进行匹配判断。
首先讲一个字符写入栈中,接下来遍历的时候依次判断如果s[i]=='}',而栈顶元素为'}'。则匹配,弹栈。依次操作下去,如果完全匹配那么最后栈应该是空的。
c++代码如下:
class Solution { public: /** * * @param s string字符串 * @return bool布尔型 */ bool isValid(string s) { stack<char>c; for(int i=0;i<s.length();i++) { if(c.empty()) { c.push(s[i]); continue; } if(s[i]==')'&& c.top()=='(') { c.pop(); } else if(s[i]==']'&& c.top()=='[') { c.pop(); } else if(s[i]=='}' && c.top()=='{') { c.pop(); } else { c.push(s[i]); } } return c.empty(); } };