24. leetcode 제목 20: Valid Parentheses

1782 단어
앞에서 말 했 듯 이 이 문 제 는 이라는 책 에서 말 했 습 니 다. 공 부 는 정말 중요 합 니 다!
제목:
Given a string containing just the characters  '('')''{''}''['  and  ']' , determine if the input string is valid.
The brackets must close in the correct order,  "()"  and  "()[]{}"  are all valid but  "(]"  and  "([)]"  are not.
분석: [(] []]]] 이런 형식 도 정확 한 격식 이다.
에서 설명 한 바 와 같이 괄호 가 일치 하 는 지 검증 하 는 방법 은 '기대 하 는 급박 정도' 라 는 개념 으로 설명 할 수 있다.창고 의 특징 을 이용 하여 진행 하 다.알고리즘 에 스 택 을 설정 하고 괄호 를 읽 을 때마다 오른쪽 괄호 가 있 으 면 스 택 꼭대기 에 있 는 가장 급 한 기 대 를 풀 거나 비합법적 인 상황 입 니 다.왼쪽 괄호 가 있 으 면 새로운 더 급박 한 기대 로 창고 에 쌓 여 원래 있 던 창고 에 있 던 모든 풀 리 지 않 은 기대 의 급박 성 을 한 단계 낮 추 게 된다.또한 알고리즘 의 시작 과 끝 에 스 택 이 비어 있어 야 합 니 다.
class Solution {
public:
    bool isValid(string s) {
        if(s=="")
        return false;
        stack<char> st;
        for(int i=0;i!=s.length();i++){
            if(s[i]==')'||s[i]=='}'||s[i]==']'){
                if(st.empty()){
                    return false;
                }
                else{
                    char c=st.top();
                    if(c=='('&&s[i]!=')'||c=='{'&&s[i]!='}'||c=='['&&s[i]!=']'){
                        return false;
                    }
                    else{
                        st.pop();
                    }
                }
            }
            else{
                st.push(s[i]);
            }
        }
        return (st.empty())?true:false;
    }
};

좋은 웹페이지 즐겨찾기