有效的括號(C++實現)
C++中有棧容器,寫起來比上一篇用C語言寫的代碼簡潔了不少
class Solution {
public:
bool isValid(string s) {
stack<char> stack;
int len = s.length();
for (int i = 0; i < len; i++)
{
char c = s.at(i);
if (c == '(' || c == '[' || c == '{')//左字符進棧
{
stack.push(c);
}
else//右括號
{
if (stack.empty())
{
return false;
}
char left = stack.top();
stack.pop();
if (left == '('&&c != ')')
{
return false;
}
if (left == '['&&c != ']')
{
return false;
}
if (left == '{'&&c != '}')
{
return false;
}
}
}
return stack.empty();
}
};