bool isValid(char* s)
{
typedef struct
{
char ch[10000];
int top;
}Stack;
Stack* stack = (Stack*)malloc(sizeof(Stack));
stack->top = -1;
int length = strlen(s);
if (length == 1)
{
return false;
}
for (int i = 0; i < length; i++)
{
if (s[i] == '(' || s[i] == '{' || s[i] == '[')
{
stack->ch[++stack->top] = s[i];
}
if (s[i] == ']')
{
if (stack->top == -1)
{
return false;
}
if (stack->ch[stack->top] != '[')
{
return false;
}
stack->top--;
}
if (s[i] == '}')
{
if (stack->top == -1)
{
return false;
}
if (stack->ch[stack->top] != '{')
{
return false;
}
stack->top--;
}
if (s[i] == ')')
{
if (stack->top == -1)
{
return false;
}
if (stack->ch[stack->top] != '(')
{
return false;
}
stack->top--;
}
}
if (stack->top != -1)
{
return false;
}
free(stack);
return true;
}
C语言括号匹配
最新推荐文章于 2024-05-14 15:34:27 发布