- 題目: Valid Parentheses 判斷字串是否為合理的左右括號
- 作法: 實作 First in last out 的 stack, 遇到左括號做 push, 右括號 pop, 若不是對應的括號或是沒有 pop 完, 則不是 valid
class Solution {
public:
bool isValid(string s) {
vector bracketVec;
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();
}
};
沒有留言:
張貼留言