mirror of
https://github.com/TheAlgorithms/C
synced 2025-04-21 21:03:02 +03:00
33 lines
678 B
C
33 lines
678 B
C
bool isValid(char *s)
|
|
{
|
|
int i, k = 0, len = strlen(s);
|
|
char *store = calloc(len, sizeof(char));
|
|
|
|
for (i = 0; s[i] != '\0'; i++)
|
|
{
|
|
switch (s[i])
|
|
{
|
|
case '(':
|
|
case '{':
|
|
case '[':
|
|
store[k++] = s[i];
|
|
break;
|
|
case ')':
|
|
if (k < 1 || store[--k] != '(')
|
|
goto out;
|
|
break;
|
|
case '}':
|
|
if (k < 1 || store[--k] != '{')
|
|
goto out;
|
|
break;
|
|
case ']':
|
|
if (k < 1 || store[--k] != '[')
|
|
goto out;
|
|
break;
|
|
}
|
|
}
|
|
out:
|
|
free(store);
|
|
return s[i] == '\0' && k == 0;
|
|
}
|