

遍历字符串,每当遇到括号的左半边我们让与之对应的右半边入栈;如果遇到右括号,则与当前栈顶元素比较,如果一样则将栈顶元素出栈,否则就是不合法的括号序列,如果最后判断完毕,栈中为空,则是合法的的序列。
代码如下:
class Solution {
public:
bool isValid(string s) {
stack<char>st;
for(char ch:s){
if(ch=='(') st.push(')');
else if(ch=='[') st.push(']');
else if(ch=='{') st.push('}');
else if(st.empty()||st.top()!=ch)
return false;
else st.pop();
}
return st.empty();
}
};
该博客讨论了一种有效的括号序列判断方法。通过使用栈数据结构,当遇到左括号时将其对应的右括号压入栈中,遇到右括号则与栈顶元素比较,匹配则出栈,不匹配则返回非法。最后栈为空则为合法序列。代码实现简洁明了,适用于编程面试中的字符串处理问题。
887

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



