import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
class Solution {
public boolean isValid(String s) {
if (s == null) return false;
//创建一个map进行匹配
Map<Character, Character> map = new HashMap<>();
map.put('{', '}');
map.put('[', ']');
map.put('(', ')');
//创建一个栈
Stack<Character> stack = new Stack<>();
//栈要添加一个元素,不然后面进行pop的时候会EmptyStackException
stack.push('.');
for (int i = 0; i < s.length(); i++) {
Character c = Character.valueOf(s.charAt(i));
//如果是左括号,就入栈
if (map.containsKey(c)){
stack.push(c);
}
//如果是右括号,就判断栈顶是不是相对应的左括号
else if (map.get(stack.pop()) != c) {
return false;
}
}
//判断栈是不是空
return stack.size() == 1;
}
}
leetcode20. 有效的括号
最新推荐文章于 2024-04-29 10:24:20 发布