20:Valid Parentheses【棧】【字串】
阿新 • • 發佈:2019-01-25
/*題意:括號配對*/ /** *思路:遍歷整個字串 * 1)遇到的字元為左括號時,直接壓入棧中 * 2)遇到的字元為右括號時,且棧不為空,判斷是否和棧中括號匹配 * 匹配則刪除棧頂元素 * 3)其它情況,返回false */ class Solution { public: bool isValid(string s) { int len = s.size(); if(len == 0) return true; stack<char> st; for(int i = 0; i < len; i ++) { if(s[i] == '(' || s[i] == '[' || s[i] == '{') st.push(s[i]); else if( !st.empty() && //先判斷棧是否為空 ( (st.top() == '(' && s[i] == ')') || (st.top() == '[' && s[i] == ']') || (st.top() == '{' && s[i] == '}') ) ) {st.pop();} else return false; } return st.empty(); //最有要判斷棧是否為空 } };