fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. const char* test(const char* m){
  5. char arr[1024*8];
  6. int t=-1;
  7. const char *k=m+strlen(m);
  8. for (;m<k;m++){
  9. if (*m=='(')
  10. arr[++t]=1;
  11. else if (*m=='{')
  12. arr[++t]=2;
  13. else if (*m=='[')
  14. arr[++t]=3;
  15. else if (*m==')'){
  16. if (t<0 || arr[t]!=1)
  17. return "Err )";
  18. --t;
  19. }
  20. else if (*m=='}'){
  21. if (t<0 || arr[t]!=2)
  22. return "Err }";
  23. --t;
  24. }
  25. else if (*m==']'){
  26. if (t<0 || arr[t]!=3)
  27. return "Err ]";
  28. --t;
  29. }
  30.  
  31. }
  32. return "No err";
  33. }
  34.  
  35. int main(void) {
  36. printf("%s\n",test("(dsfsgh{sdfsd)fsdf}"));
  37. printf("%s\n",test("(1(2{3}4)5)"));
  38. printf("%s\n",test("(1{2{3}4}5}"));
  39. printf("%s\n",test("({[)}]"));
  40.  
  41. }
  42.  
Success #stdin #stdout 0s 4336KB
stdin
Standard input is empty
stdout
Err )
No err
Err }
Err )