- 題目: Valid Parentheses 判斷字串是否為合理的左右括號
- 作法: 實作 First in last out 的 stack, 遇到左括號做 push, 右括號 pop, 若不是對應的括號或是沒有 pop 完, 則不是 valid
class Solution { public: bool isValid(string s) { vectorbracketVec; for (size_t i = 0; i < s.length(); i++){ if (s[i] == ')' || s[i] == ']' || s[i] == '}' ) { if (bracketVec.empty()) return false; else if ( (s[i] == ')' && bracketVec.back() == '(') || (s[i] == ']' && bracketVec.back() == '[') || (s[i] == '}' && bracketVec.back() == '{')) bracketVec.pop_back(); else return false; } else if (s[i] == '(' || s[i] == '[' || s[i] == '{') { bracketVec.push_back(s[i]); } } return bracketVec.empty(); } };
沒有留言:
張貼留言