如果是左边的括号就让他进栈,进栈。
比如 ([{}])
左边进栈 ([{右边第一个}然后正好对上最后一个出栈。如果到最后堆栈为空就返回true
特殊情况
如果是{}]
就是在堆栈空的时候来了个右边的括号那绝对是匹配不上的
代码
class Solution { public boolean isValid(String s) { int n = s.length(); Dequestack = new linkedList<>(); HashMap map = new HashMap () {{ put(')', '('); put('}', '{'); put(']', '['); }}; for (int i = 0; i < n; i++) { char ch = s.charAt(i); if (map.containsKey(ch)) { if (stack.isEmpty() || stack.peek() != map.get(ch)) { return false; } stack.pop(); } else { stack.push(ch); } } return stack.isEmpty(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)