fork download
  1. #include<cstdio>
  2. #include<stack>
  3.  
  4. using namespace std;
  5.  
  6. int t;
  7. char tmp;
  8. stack<char> op;
  9.  
  10. int main()
  11. {
  12. scanf("%d%c",&t,&tmp);
  13. for(int z=0;z<t;z++){
  14. bool A=true;
  15. while(scanf("%c",&tmp)){
  16. if(tmp==')'){
  17. if(op.empty()){
  18. A=false;
  19. }else if(op.top()=='(')
  20. op.pop();
  21. else{
  22. A=false;
  23. }
  24. }else if(tmp==']'){
  25. if(op.empty()){
  26. A=false;
  27. }else if(op.top()=='[')
  28. op.pop();
  29. else{
  30. A=false;
  31. }
  32. }else if(tmp=='('||tmp==')'||tmp=='['||tmp==']')
  33. op.push(tmp);
  34. else
  35. break;
  36. }
  37. if(!op.empty()) A=false;
  38. if(A)
  39. printf("Yes\n");
  40. else
  41. printf("No\n");
  42. }
  43.  
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0s 3436KB
stdin
3
([])
(([()])))
([()[]()])()
stdout
Yes
No
Yes