
思路:
判断括号的有效性可以使用「栈」这一数据结构来解决。
先出现的左括号后匹配——先进后出用栈!
此题,把左括号加入栈,匹配的过程就是出栈的过程。
代码实现:1定义辅助函数判断一对符号是否匹配
2核心函数:字符串空返回真;遍历字符串,如果是右括号的情况,判断栈顶是否是匹配的左括号,匹配成功则出栈;如果是左括号,入栈等待匹配;最后,完全匹配的要求是栈为空。
class Solution {
public boolean isValid(String s) {
if(s.length() % 2==0){
Map<Character,Character> pairs = new HashMap<Character,Character>();
pairs.put(')','(');
pairs.put('}','{');
pairs.put(']','[');
LinkedList<Character> stack = new LinkedList<Character>();
for(int i=0;i<s.length();i++){
char ch = s.charAt(i);
if(pairs.containsKey(ch)){
if(stack.isEmpty()||stack.peek()!=pairs.get(ch)){
return false;
}
stack.pop();
}else{
stack.push(ch);
}
}
return stack.isEmpty();
}
return false;
}
}
本文介绍了一种使用栈数据结构来验证括号序列有效性的算法。通过遍历字符串并利用栈来跟踪未闭合的括号,实现了左右括号的匹配检查。最终,若栈为空,则说明所有括号都正确匹配。
8万+

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



