演算法Valid Parentheses

dongyu2013發表於2014-05-04

點選(此處)摺疊或開啟

  1. public static boolean isValid(String s) {
  2.     HashMap<Character, Character> map = new HashMap<Character, Character>();
  3.     map.put(\'(\', \')\');
  4.     map.put(\'[\', \']\');
  5.     map.put(\'{\', \'}\');
  6.  
  7.     Stack<Character> stack = new Stack<Character>();
  8.  
  9.     for (int i = 0; i < s.length(); i++) {
  10.         char curr = s.charAt(i);
  11.  
  12.         if (map.keySet().contains(curr)) {
  13.             stack.push(curr);
  14.         } else if (map.values().contains(curr)) {
  15.             if (!stack.empty() && map.get(stack.peek()) == curr) {
  16.                 stack.pop();
  17.             } else {
  18.                 return false;
  19.             }
  20.         }
  21.     }
  22.  
  23.     return stack.empty();
  24. }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29012686/viewspace-1153230/,如需轉載,請註明出處,否則將追究法律責任。

相關文章