有效括号序列
题目描述
给出一个仅包含字符’(‘,’)‘,’{‘,’}‘,’[‘和’]',的字符串,判断给出的字符串是否是合法的括号序列,括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。
栈
#include <vector>
class Solution {
public:
/**
*
* @param s string字符串
* @return bool布尔型
*/
bool isValid(string s) {
// write code here
vector<char> dp;
int count;
count = s.size();
for (int i = 0; i < count; i++) {
if (s[i] == '(' || s[i] == '{' || s[i] == '[') {
dp.push_back(s[i]);
} else if (!dp.empty()) {
if (s[i] == ')' && dp.back() == '(') {
dp.pop_back();
} else if (s[i] == '}' && dp.back() == '{') {
dp.pop_back();
} else if (s[i] == ']' && dp.back() == '[') {
dp.pop_back();
}
} else {
dp.push_back(s[i]);
}
}
if (dp.empty()) {
return true;
} else {
return false;
}
}
};