20 有效的括号

  1. class Solution {
  2. public boolean isValid(String s) {
  3. Stack<Character> buckets = new Stack<Character>();
  4. buckets.push('#'); // 栈底压入标志
  5. for (int i = 0; i < s.length(); i++) {
  6. Character c = s.charAt(i);
  7. switch (c) {
  8. case '(':
  9. case '[':
  10. case '{':
  11. buckets.push(c);
  12. break;
  13. case ')':
  14. if (buckets.peek() == '(')
  15. buckets.pop();
  16. else
  17. return false;
  18. break;
  19. case ']':
  20. if (buckets.peek() == '[')
  21. buckets.pop();
  22. else
  23. return false;
  24. break;
  25. case '}':
  26. if (buckets.peek() == '{')
  27. buckets.pop();
  28. else
  29. return false;
  30. break;
  31. }
  32. }
  33. if (buckets.peek() == '#')
  34. return true;
  35. else
  36. return false;
  37. }
  38. }