c++ | simple stack problem | 0ms | 100% faster of all submission
class Solution {
public:
    bool isValid(string s) {
        stack<char> st;
        int N = s.size();
        for(int i=0; i<N; i++){
            if(s[i] == '(' || s[i] == '{' || s[i] == '['){
                st.push(s[i]);
            }else if(!st.empty()){
                    if(s[i] == ')' && st.top() == '('){
                        st.pop();
                    
                    }else if(s[i] == '}' && st.top() == '{'){
                            st.pop();
                        
                    }else if(s[i] == ']' && st.top() == '['){
                            st.pop();
                }else return false; //  test case like "(])"
            }else return false; // test case like "]"
        }
        
        
        if(st.empty()) return true; // test case like "([])" -- balanced parentheses
        else return false; // of no use
    }
};
Comments (0)