个人解法
class Solution {
public:
bool isValid(string s) {
stack<char> c;
c.push(s[0]);
int j=c.size()-1;
for(int i=1;i<s.size();i++)
{
if(c.empty())
{
c.push(s[i]);
if(s[i]=='}'||s[i]==']'||s[i]==')')
{
break;
}
else{
continue;
}
}
if(s[i]==')'&&c.top()=='('||s[i]==']'&&c.top()=='['||s[i]=='}'
&&c.top()=='{')
{
c.pop();
}
else
{
c.push(s[i]);
}
}
if(!c.empty()) return false;
else return true;
}
};
官方解法
方法一:栈
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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。