fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define FR0(i,N) for(i=0;i<(N);i++)
  4. #define FR1(i,N) for(i=1;i<=(N);i++)
  5. #define FRN(i,k,N) for(i=k;i<(N);i++)
  6. #define pf printf
  7. #define db double
  8. #define max3(a,b,c) max(max(a,b),c)
  9. #define min3(a,b,c) min(min(a,b),c)
  10. #define sci(n) scanf("%d",&n)
  11. #define scl(n) scanf("%lld",&n)
  12. #define scf(n) scanf("%f",&n)
  13. #define scd(n) scanf("%lf",&n)
  14. #define scs(s) scanf("%s",&s)
  15. #define scll(n) scanf("%%I64d",&n)
  16. #define PI acos(-1.0)
  17. #define LL long long
  18. #define MX 1000005
  19. #define MOD 1000000007
  20. typedef long long int ll;
  21. bool status[1100002];
  22.  
  23. int main()
  24. {
  25. int test;
  26. string str;
  27. //stack<int>mystack;
  28. cin>>test;
  29. //getline(cin,str);
  30. getchar();
  31. while(test--)
  32. {
  33. //mystack.clear();
  34. getline(cin,str);
  35. stack<char>mystack;
  36. for(int i=0;i<str.size();i++)
  37. {
  38. if(!mystack.empty() && str[i]==')' && mystack.top()=='(')
  39. {
  40. mystack.pop();
  41. }
  42. else if(!mystack.empty() && str[i]==']' && mystack.top()=='[')
  43. {
  44. mystack.pop();
  45. }
  46. else
  47. {
  48. mystack.push(str[i]);
  49. }
  50. }
  51. if(mystack.empty())
  52. {
  53. cout<<"Yes"<<endl;
  54. }
  55. else
  56. {
  57. cout<<"No"<<endl;
  58. }
  59. }
  60. }
  61.  
  62.  
  63.  
Success #stdin #stdout 0s 4492KB
stdin
3
([])
(([()])))
([()[]()])()
stdout
Yes
No
Yes