力扣地址

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

有效字符串需满足:

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

示例 1:

输入:s = "()"
输出:true

示例 2:

输入:s = "()[]{}"
输出:true

示例 3:

输入:s = "(]"
输出:false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成
func isValid(s string) bool {
    list := make([]int32, 0)
    //字典
    dict := map[int32]int32{
        '(': ')',
        '[': ']',
        '{': '}',
    }
    for _, v := range s {
        if v == '(' || v == '[' || v == '{' {
            //开始符号进入队列
            list = append(list, v)
        } else {
            //判断是否没有开始就有结束符号
            listLen := len(list)
            if listLen == 0 {
                return false
            }
            //先进后出 判断是否为对应符号
            if dict[list[listLen-1]] == v {
                list = list[:listLen-1]
            } else {
                return false
            }
        }
    }
    //如还有残留 表示缺少结束符号
    if len(list) > 0 {
        return false
    }
    return true
}
Last modification:June 21, 2024
如果觉得我的文章对你有用,请收藏本站