栈
class Solution {
public:
bool isValid(string s) {
stack<char> stack;
for(int i=0; i<s.length(); ++i){
char c = s[i];
if(!stack.empty()){
char t = stack.top();
if(t=='(' && c==')'
|| t=='[' && c==']'
|| t=='{' && c=='}'){
stack.pop();
continue;
}
}
stack.push(c);
}
return stack.empty();
}
};
栈+哈希表
用哈希表存储每一种括号,哈希表的键为右括号,值为相同类型的左括号。
class Solution {
public:
bool isValid(string s) {
int n = s.size();
if (n % 2 == 1) {
return false;
}
unordered_map<char, char> pairs = {
{')', '('},
{']', '['},
{'}', '{'}
};
stack<char> stk;
for (char ch: s) {
if (pairs.count(ch)) {
if (stk.empty() || stk.top() != pairs[ch]) {
return false;
}
stk.pop();
}
else {
stk.push(ch);
}
}
return stk.empty();
}
};
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/valid-parentheses/solution/you-xiao-de-gua-hao-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。