2026-07-160

有效符号

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。
  • 每个右括号都有一个对应的相同类型的左括号。

实现思路

  • 题目关键
    • 符号需要成对的对称出现
  • 怎么验证是否成对
    • 遇到左符号进栈
    • 遇到右符号,判断栈顶的元素是否匹配
      • 匹配,则弹出,继续后续元素的验证
      • 不匹配,直接return false

代码实现

go
func isValid(s string) bool { arr := []byte(s) m := map[byte]byte{ '}':'{', ')':'(', ']':'[', } stack := []byte{} for _, num := range arr { if ch,ok := m[num];ok { if len(stack) == 0 { return false } if ch != stack[len(stack)-1] { return false } stack = stack[:len(stack)-1] }else{ stack = append(stack, num) } } return len(stack) == 0 }

本文作者:曹子昂

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!