fork download
  1. /*
  2.   CODE BY : NGUYỄN QUANG CHIẾN
  3.   number => N ; s.size() = > S
  4.   DO_PHUC_TAP_THUAT_TOAN : O(N * S)
  5. */
  6.  
  7. #include<bits/stdc++.h>
  8. using namespace std ;
  9.  
  10. int solve(string s){
  11. stack<char> st ;
  12. bool check = true ;
  13. for(int i = 0 ; i < s.size() ; i++){
  14. if(s[i] == '(' || s[i] == '{' || s[i] == '[' || s[i] == '<') st.push(s[i]);
  15. else if(s[i] == ')'){
  16. if(!st.empty() && st.top() == '(') st.pop();
  17. else{
  18. check = false ;
  19. break ;
  20. }
  21. }
  22. else if(s[i] == ']'){
  23. if(!st.empty() && st.top() == '[') st.pop();
  24. else{
  25. check = false ;
  26. break ;
  27. }
  28. }
  29. else if(s[i] == '}'){
  30. if(!st.empty() && st.top() == '{') st.pop();
  31. else{
  32. check = false ;
  33. break ;
  34. }
  35. }
  36. else if(s[i] == '>'){
  37. if(!st.empty() && st.top() == '<') st.pop();
  38. else{
  39. check = false ;
  40. break ;
  41. }
  42. }
  43. }
  44. if(st.size()) check = false ;
  45.  
  46. if(check) return true ;
  47. else return false ;
  48. }
  49.  
  50. int main(){
  51. ios::sync_with_stdio(false);
  52. cin.tie(nullptr);
  53. cout.tie(nullptr);
  54.  
  55. int number ; cin >> number ;
  56. while(number--){
  57. string s ; cin >> s ;
  58. if(solve(s)) cout << "YES" << endl ;
  59. else cout << "NO" << endl;
  60. }
  61. }
  62.  
  63.  
  64.  
Success #stdin #stdout 0s 5304KB
stdin
1
]({}}>(([]{(]
stdout
NO