20.有效的括号
题目:有效的括号 点击跳转
文章目录
- 题目描述
- 栈
- HashMap版本
题目描述
栈
先进后出遇到左括号 → 入栈
遇到右括号 → 检查栈顶
classSolution{publicbooleanisValid(Strings){Stack<Character>stack=newStack<>();for(Characterc:s.toCharArray()){if(c=='('||c=='['||c=='{'){stack.push(c);}else{if(stack.isEmpty()){returnfalse;}Characterd=stack.pop();if(c==')'&&d!='(')returnfalse;if(c==']'&&d!='[')returnfalse;if(c=='}'&&d!='{')returnfalse;}}returnstack.isEmpty();}}HashMap版本
classSolution{publicbooleanisValid(Strings){Stack<Character>stack=newStack<>();Map<Character,Character>hashmap=newHashMap<>();hashmap.put(')','(');hashmap.put(']','[');hashmap.put('}','{');for(Characterc:s.toCharArray()){if(hashmap.containsKey(c)){if(stack.isEmpty()){returnfalse;}Characterd=stack.pop();if(d!=hashmap.get(c)){returnfalse;}}else{stack.push(c);}}returnstack.isEmpty();}}