Valid Parentheses

Yohan Kim·2021년 8월 24일
0

problem

대괄호, 중괄호, 소괄호가 알맞게 배열되어 있는지 확인하는 문제입니다.

Input: s = "()"
Output: true

Input: s = "(]"
Output: false

solution

class Solution {
    
public:
    bool isValid(string s) {
        stack<char> st;
        for(int i = 0; i<s.size();i++)
        {
            switch(s[i])
            {
                case '(':
                    st.push(s[i]);
                    break;
                case '{':
                    st.push(s[i]);
                    break;
                case '[':
                    st.push(s[i]);
                    break;
                case ')':
                    if(st.empty()) return false;
                    else if(st.top() != '(') return false;
                    else st.pop();
                    break;
                case '}':
                    if(st.empty()) return false;
                    else if(st.top() != '{') return false;
                    else st.pop();
                    break;
                case ']':
                    if(st.empty()) return false;
                    else if(st.top() != '[') return false;
                    else st.pop();
                    break;
            }
        }
        return st.empty();
    }
};

후기

string을 비교하는 함수라 그런지 실행속도는 다들 0ms 였다.
메모리를 진짜 적게 사용하는 코드를 보았는데
stack을 쓰지 않고, string을 쓰더라
생각해보니까 char 1개씩 비교할것이기 때문에 스트링이 더 적합한 것 같다.

profile
안녕하세요 반가워요!

0개의 댓글