mirror of
https://github.com/TheAlgorithms/C
synced 2025-04-22 13:16:14 +03:00
30 lines
730 B
C
30 lines
730 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;
|
|
}
|