括号序列
利用数据结构栈,进行匹配判断。
首先讲一个字符写入栈中,接下来遍历的时候依次判断如果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();
}
};
京公网安备 11010502036488号