1. public boolean isValid(String s) {
    2. final int length = s.length();
    3. if (length % 2 == 1) {
    4. return false;
    5. }
    6. Deque<Character> deque = new LinkedList();
    7. for (int i = 0; i < length; i++) {
    8. char at = s.charAt(i);
    9. if ('(' == at) {
    10. deque.push(')');
    11. } else if ('[' == at) {
    12. deque.push(']');
    13. } else if ('{' == at) {
    14. deque.push('}');
    15. } else if (deque.isEmpty() || at != deque.pop()) {
    16. return false;
    17. }
    18. }
    19. return deque.isEmpty();
    20. }