Valid Parentheses (棧的符號匹配)
阿新 • • 發佈:2019-02-19
很簡單的利用棧進行括號匹配的題目。
當是左邊的符號的時候,壓進棧中。發現是右邊的符號的時候,先判斷其是否為空,然後與棧頂元素比較,不等直接return false
當是左邊的符號的時候,壓進棧中。發現是右邊的符號的時候,先判斷其是否為空,然後與棧頂元素比較,不等直接return false
注意一點就是 最後只有棧中為空的時候才返回true。
class Solution { public: bool isValid(string s) { stack<char> sk; int len=s.length(); for(int i=0;i<len;i++) { if(s[i]=='['||s[i]=='{'||s[i]=='(') sk.push(s[i]); else { if(s[i]==']') { if(sk.empty()) return false; else{ char OnTop=sk.top(); sk.pop(); if(OnTop!='[') return false; } } if(s[i]=='}') { if(sk.empty()) return false; else{ char OnTop=sk.top(); sk.pop(); if(OnTop!='{') return false; } } if(s[i]==')') { if(sk.empty()) return false; else{ char OnTop=sk.top(); sk.pop(); if(OnTop!='(') return false; } } } } if(sk.empty()) return true; else return false; } };