
题目:LeetCode 20.有效的括号
LeetCode链接: LeetCode 2.两数相加 https://leetcode-cn.com/problems/valid-parentheses

审题
题目重点:只会有括号,之前以为会有字母,所以代码写复杂了。
解题
代码
public boolean isValid(String s) {
Map<Character, Character> map = new HashMap();
map.put(']','[');
map.put('}','{');
map.put(')','(');
char cc[] = s.toCharArray();
Stack stack = new Stack();
for(int i = 0;i<cc.length; i++){
if(map.containsKey(cc[i])){
if(stack.isEmpty()){
return false;
}
if(stack.pop()!=map.get(cc[i])){
return false;
}
}else{
stack.push(cc[i]);
}
}
return stack.isEmpty();
}
复杂度
- 时间复杂度O(n):循环s长度。
- 空间复杂度O(n):都是左边的括号,栈深度为n。
易错点
- 多写几遍就好了