利用栈来控制括号的匹配
class Solution {
public:
bool isValid(string s) {
stack<char> stack;
char c;
int len = s.length();
for (int i = 0; i < len; i++)
{
if (s[i] == '(' || s[i] == '{' || s[i] == '[')
stack.push(s[i]);
else if (s[i] == ')')
{
if (stack.empty())
return false;
else if (c = stack.top(), c == '(')
stack.pop();
else
return false;
}
else if (s[i] == ']')
{
if (stack.empty())
return false;
else if (c = stack.top(), c == '[')
stack.pop();
else
return false;
}
else if (s[i] == '}')
{
if (stack.empty())
return false;
else if (c = stack.top(), c == '{')
stack.pop();
else
return false;
}
}
if (stack.empty())
return true;
else
return false;
}
};
使用栈运行速度更快,如果有更小内存的解法,欢迎一起讨论学习!
如果对你有帮助,欢迎点赞关注