题目:
Given a string containing just the characters '(', ')', '{', '}', '[' and ']',
determine if the input string is valid.
The brackets must close in the correct order, "()" and "()[]{}" are
all valid but "(]" and "([)]" are
not.
class Solution {
public:
bool isValid(string s) {
bool flag = true;
stack<char> par;
for(int i = 0; i < s.size(); i++) {
if(s[i] == '(' || s[i] == '[' || s[i] == '{')
par.push(s[i]);
else if(par.empty()) {
flag = false;
break;
}
else if(s[i] == ')' && par.top() == '(')
par.pop();
else if(s[i] == ']' && par.top() == '[')
par.pop();
else if (s[i] == '}' && par.top() == '{')
par.pop();
else {
flag = false;
break;
}
}
return (par.empty() && flag);
}
};
本文介绍了一个使用栈数据结构实现的有效括号匹配算法。该算法能够判断一个包含括号的字符串是否有效,即括号是否正确闭合且顺序正确。文章通过具体的C++代码示例详细解释了算法的工作原理。
911

被折叠的 条评论
为什么被折叠?



