1. 程式人生 > >LeetCode 20. 有效的括號

LeetCode 20. 有效的括號

給定一個只包括 '('')''{''}''['']' 的字串,判斷字串是否有效。

有效字串需滿足:

  1. 左括號必須用相同型別的右括號閉合。
  2. 左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

思路:只要遇到括號匹配的問題,我們就選擇用棧,遇到左括號就進棧,遇到右括號,就判斷棧頂元素是否與之匹配,匹配的話就pop出棧,不匹配的話就返回false。

class Solution {
public:
    bool isValid(string s) {
        stack<char>store;
        for(int x:s)
        {
            if(x=='('||x=='{'||x=='[') 
                store.push(x);
            else
            {
                if(store.empty()||x==')'&& store.top()!='('||x==']'&&store.top()!='['||x=='}'&&store.top()!='{')
                    return false;
                else 
                    store.pop();
            }
        }
        return store.empty();
    }
};