1. 程式人生 > >棧-有效括號

棧-有效括號

題目連結

https://leetcode-cn.com/problems/valid-parentheses/description/


題目分析:

一道水題,利用棧就好了,當遇到"[","{","("時入棧,當遇到"]"並且棧頂是"["時棧頂出棧,"}",")"同理,當以上兩種情況都不滿足時,直接無效,後面的不用判斷 ,否則最後若棧空則有效,否則無效。

class Solution {
public:
    bool isValid(string s) {
        char st[10000];
        int top = -1;
        int ok = 1;
        for(int i = 0;i<s.length();i++){
            if(s[i] == '('||s[i]=='['||s[i]=='{'){
                top++;
                st[top] = s[i];
            }      //配對成功出棧
            else  if(s[i] == ')'&&top!=-1&&st[top] == '(')top--;
            else  if(s[i] == ']'&&top!=-1&&st[top]=='[')top--;
            else  if(s[i] == '}'&&top!=-1&&st[top] == '{')top--;
            else {ok = 0;break;}  //直接跳出
        }
        if(ok&&top==-1)return true;
        else return false;
    }
};