原理:先把左括号‘(’‘【’‘{’先保存在数组里面(循环变量i),用循环变量(top)递减将右括号‘)’‘】’‘}’与左括号匹配
执行用时 :4 ms, 在所有 C++ 提交中击败了79.78%的用户
内存消耗 :8.3 MB, 在所有 C++ 提交中击败了90.19%的用户
class Solution {
public:
bool isValid(string s)
{
if (s.length() == 0 || s[0] == '\0')
{
return true;
}
char stack[10240]; int top =0;
for(int i = 0; s[i]; ++i)
{
if (s[i] == '(' || s[i] == '[' || s[i] == '{')
{
stack[top++] = s[i];
}
else
{
if((--top)<0)
{
return false;
}
if (s[i] == ')' && stack[top] != '(')
{
return false;
}
if (s[i] == ']' && stack[top] != '[')
{
return false;
}
if (s[i] == '}' && stack[top] != '{')
{
return false;
}
}
}
return (top ? false : true);
}
};