class Solution {
public:
bool leftBrace(char ch) {
return ch == '(' || ch == '{' || ch == '[';
}
bool isMatch(char lc, char rc) {
return lc == '(' && rc == ')' ||
lc == '{' && rc == '}' ||
lc == '[' && rc == ']';
}
bool isValid(string s) {
stack<char> st;
for (int i = 0; i < s.length(); ++i) {
if (leftBrace(s[i]))
st.push(s[i]);
else if (st.empty() || !isMatch(st.top(), s[i]))
return false;
else
st.pop();
}
return st.empty();
}
};

本文介绍了一种使用栈数据结构来验证括号字符串是否有效的算法。该算法通过遍历输入字符串,利用栈来记录左括号,并在遇到右括号时检查栈顶元素是否为匹配的左括号。如果字符串遍历结束且栈为空,则说明所有括号都正确配对。
391

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



