Problem: 20. 有效的括号
文章目录
- 思路
- 复杂度
- 💝 Code
思路
👨🏫 参考地址
复杂度
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( n ) O(n) O(n)
💝 Code
class Solution {static Map<Character, Character> map = new HashMap<>();static{map.put('(', ')');map.put('[', ']');map.put('{', '}');
// map.put('?', '?');// 占位符}public boolean isValid(String s){int n = s.length();if (n > 0 && !map.containsKey(s.charAt(0)))return false;LinkedList<Character> stack = new LinkedList<Character>();stack.add('?');for (Character c : s.toCharArray()){if (map.containsKey(c))stack.addLast(c);else if (map.get(stack.removeLast()) != c)return false;}return stack.size() == 1;// 合法的括号序列最后只剩下一个占位符 ?}
}