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;
}