20. Valid Parentheses

OA:
class Solution { public boolean isValid(String s) { char[] stack = new char[s.length()]; int head = 0; for (char c : s.toCharArray()) { if (c == '(') { stack[head++] = c; } else if (c == '[') { stack[head++] = c; } else if (c == '{') { stack[head++] = c; } else if (c == ')') { if (head == 0) return false; if (stack[--head] != '(') return false; } else if (c == ']') { if (head == 0) return false; if (stack[--head] != '[') return false; } else if (c == '}') { if (head == 0) return false; if (stack[--head] != '{') return false; } } return head == 0; } }
OA比MA快一倍。
String有个toCharArray()方法,返回一个装着该String的char[]。

MA:
class Solution { public boolean isValid(String s) { Stack<Character> stack=new Stack<>(); for(int i=0;i<s.length();i++){ char temp=s.charAt(i); if(temp=='('||temp=='['||temp=='{') stack.push(temp); else if(temp=='}'&&!stack.empty()&&stack.peek()=='{'){ stack.pop(); continue; } else if(temp==']'&&!stack.empty()&&stack.peek()=='['){ stack.pop(); continue; } else if(temp==')'&&!stack.empty()&&stack.peek()=='('){ stack.pop(); continue; } else return false; } return stack.empty(); } }

评论

此博客中的热门博文

225 Implement Stack using Queues

232. Implement Queue using Stacks