image.png

image.png

解法一:使用栈

  1. function isValid(s: string): boolean {
  2. const stack = []
  3. const map = new Map([
  4. [')','('],
  5. ['}', '{'],
  6. [']', '[']
  7. ])
  8. for(const c of s) {
  9. // 将左括号推入栈顶
  10. if (!map.has(c)) {
  11. stack.push(c)
  12. } else {
  13. // 如果为右括号,则取出栈顶,判断是否匹配
  14. if (stack.pop() !== map.get(c)) {
  15. return false
  16. }
  17. }
  18. }
  19. return stack.length === 0
  20. };