很简单的一道题,以前习惯用C式C++编程,现在尝试用C++容器,感觉效率高了不少。
Valid Parentheses
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) {
map<char,char > aMap;
aMap.insert ( pair<char,char>('(',')') );
aMap.insert ( pair<char,char>('{','}') );
aMap.insert ( pair<char,char>('[',']') );
set<char> aSet;
aSet.insert(')');
aSet.insert('}');
aSet.insert(']');
stack<char> aStack;
for(int i = 0; i < s.size(); i++) {
if(aMap.find(s[i]) != aMap.end() ) {
aStack.push(s[i]);
}else if(aSet.find(s[i]) != aSet.end()) {
if(aStack.empty())
return false;
if(aMap[aStack.top()] != s[i])
return false;
aStack.pop();
}
}
if(aStack.empty())
return true;
else
return false;
}
};
本文介绍了一种使用 C++ 容器实现的有效括号匹配验证算法。通过栈结构判断字符串中的括号是否正确配对,包括圆括号'()'、方括号'[]'和花括号'{}
786

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



