/* */ //#pragma comment(linker, "/STACK:16777216") #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define y0 sdkfaslhagaklsldk #define y1 aasdfasdfasdf #define yn askfhwqriuperikldjk #define j1 assdgsdgasghsf #define tm sdfjahlfasfh #define lr asgasgash #define norm asdfasdgasdgsd #define eps 1e-9 #define M_PI 3.141592653589793 #define bs 1000000007 #define bsize 256 using namespace std; const int INF = 1e9; const int N = 500031; int tests; bool is_opn(char c) { if (c == '('||c=='['||c=='{'||c=='|') return true; return false; } char paired(char c) { if (c == ')') return '('; if (c == ']') return '['; if (c == '}') return '{'; } bool check(string st) { stack< char> c; for (int i = 0; i < st.size(); i++) { // cout << i << "%" << c.size() << endl; if (st[i] == '|') { if (c.size() == 0) { c.push(st[i]); continue; } char cc = c.top(); //cout << "@" << cc << endl; if (cc == '|') { c.pop(); continue; } c.push(st[i]); continue; } if (is_opn(st[i])) { c.push(st[i]); continue; } if (c.size() == 0) return false; char cc = c.top(); c.pop(); if (paired(st[i]) != cc) return false; } //cout << c.size() << endl; if (c.size()) return false; return true; } int main(){ //freopen("fabro.in","r",stdin); //freopen("fabro.out","w",stdout); //freopen("F:/in.txt", "r", stdin); //freopen("F:/output.txt", "w", stdout); ios_base::sync_with_stdio(0); //cin.tie(0); cin >> tests; for (; tests; --tests) { string st; cin >> st; if (check(st)) cout << "YES" << endl; else cout << "NO" << endl; } cin.get(); cin.get(); return 0; }