题目

https://leetcode-cn.com/problems/valid-parentheses/

解题

  1. /**
  2. * @param {string} s
  3. * @return {boolean}
  4. */
  5. let s = ']'
  6. var isValid = function(s) {
  7. // 1、replace
  8. // while(s.includes('{}') || s.includes('()') || s.includes('[]')) {
  9. // s = s.replace('{}', '')
  10. // s = s.replace('[]', '')
  11. // s = s.replace('()', '')
  12. // }
  13. // return s === ''
  14. // 2、stack
  15. if (s.length % 2 !==0) {
  16. return false
  17. }
  18. const items = []
  19. for (let i = 0; i < s.length; i ++) {
  20. const letter = items[items.length - 1]
  21. switch(s[i]) {
  22. case '{':
  23. items.push('{')
  24. break
  25. case '(':
  26. items.push('(')
  27. break
  28. case '[':
  29. items.push('[')
  30. break
  31. case '}':
  32. if (letter !== '{' ) {
  33. return false
  34. }
  35. items.pop()
  36. break
  37. case ']':
  38. if (letter !== '[' ) {
  39. return false
  40. }
  41. items.pop()
  42. break
  43. case ')':
  44. if (letter !== '(' ) {
  45. return false
  46. }
  47. items.pop()
  48. break
  49. }
  50. }
  51. return items.length === 0
  52. };