棧-有效括號

題目鏈接

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;
    }
};


發佈了34 篇原創文章 · 獲贊 1 · 訪問量 2732
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章