LeetCode 20. 有效的括號
阿新 • • 發佈:2019-01-24
給定一個只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字串,判斷字串是否有效。
有效字串需滿足:
- 左括號必須用相同型別的右括號閉合。
- 左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
思路:只要遇到括號匹配的問題,我們就選擇用棧,遇到左括號就進棧,遇到右括號,就判斷棧頂元素是否與之匹配,匹配的話就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(); } };