使用 Stack 來存儲左括號:
(、[、{
時,將其 壓入)、]、}
時,檢查棧頂元素是否是對應的左括號:
class Solution {
public:
bool isValid(string s) {
stack<char> stk;
unordered_map<char, char> pairs = {{')', '('}, {']', '['}, {'}', '{'}};
for(char c:s){
if(c=='(' || c=='{' || c=='['){
stk.push(c);
}else{
if(c==')' && !stk.empty() && stk.top()=='(') stk.pop();
else if(c==']' && !stk.empty() && stk.top()=='[') stk.pop();
else if(c=='}' && !stk.empty() && stk.top()=='{') stk.pop();
else return false;
}
}
return stk.empty();
}
};