2014년 8월 10일 일요일

BRACKETS2

알고스팟 BRACKETS2



[-] Collapse
#include<cstdio>
#include<stack>
int main(){
    int t; scanf("%d", &t); getchar();
    char bracket[126];
    bracket['{'] = '}'; bracket['['] = ']'; bracket['('] = ')';
    while (t--){
        std::stack<char> st;
        char c, x;
        while (1){
            x = scanf("%c", &c);
            if (x == -1 || c == '\n') break;
            if (bracket[c] == '}' || bracket[c] == ']' || bracket[c] == ')')
                st.push(c);
            else{
                if (!st.empty() && bracket[st.top()] == c)
                    st.pop();
                else
                    st.push(c);
            }
        }
        puts(st.empty() ? "YES" : "NO");
    }
}

댓글 없음:

댓글 쓰기