Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int st(char str[])
- {
- int j, k = 0;
- char* st = (char*)malloc(sizeof(char)*strlen(str));
- for (j = 0; j!= strlen(str); j++)
- {
- switch (str[j])
- {
- case '(':
- st[k] = '(';
- k++;
- break;
- case '{':
- st[k] = '{';
- k++;
- break;
- case '[':
- st[k] = '[';
- k++;
- break;
- case ')':
- if( (st[k-1] == '(') )
- k--;
- else
- {
- free(st);
- return 0;
- }
- break;
- case '}':
- if( (st[k-1] == '{') )
- k--;
- else
- {
- free(st);
- return 0;
- }
- break;
- case ']':
- if( (st[k-1] == '[') )
- k--;
- else
- {
- free(st);
- return 0;
- }
- break;
- }
- }
- if (k== 0)
- return 1;
- else
- {
- free(st);
- return 0;
- }
- }
- int main()
- {
- int i, j, z, brackets = 0;
- char c, *str = "", *tmp = NULL;
- for (i=0; (c = getchar())!= '\n'; i++)
- {
- tmp = str;
- str = (char*)malloc(i+2);
- strcpy(str, tmp);
- free(tmp);
- str[i] = c;
- str[i+1]= '\0';
- }
- for (i = 0; i< strlen(str); i++)
- if ((str[i] == '(') || (str[i] == '{') || (str[i] == '[') || (str[i] == ')') || (str[i] == '}') || (str[i] == ']'))
- brackets++;
- if (brackets == 0)
- {
- printf("There are no brackets\n");
- return 0;
- }
- if (st(str) == 1)
- printf("Everythig is OK\n");
- else
- printf("Smt is wrong\n");
- free(str);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement