LeetCode 20.有效的括号

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

有效字符串需满足:

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

示例 1:

输入:s = “()”
输出:true
示例 2:

输入:s = “()[]{}”
输出:true
示例 3:

输入:s = “(]”
输出:false

提示:

1 <= s.length <= 104
s 仅由括号 ‘()[]{}’ 组成

遍历一遍s,如果是左括号,就入栈,如果是右括号,那么栈顶元素必定是与之匹配的左括号:

func isValid(s string) bool {
    stack := []byte{}
    parentheseMap := map[byte]byte{
        ')': '(',
        '}': '{',
        ']': '[',
    }
    for i := 0; i < len(s); i++ {
        if s[i] == '(' || s[i] == '[' || s[i] == '{' {
            stack = append(stack, s[i])
        } else {
            if len(stack) == 0 || stack[len(stack)-1] != parentheseMap[s[i]] {
                return false
            }
            stack = stack[:len(stack)-1]
        }
    }

    return len(stack) == 0
}

如果是输入字符串长度为n,此算法时间复杂度为O(n),空间复杂度为O(1)。

相关推荐

  1. LeetCode 20. 有效括号

    2024-04-03 05:00:08       37 阅读
  2. Leetcode 20. 有效括号

    2024-04-03 05:00:08       18 阅读
  3. LeetCode 20.有效括号

    2024-04-03 05:00:08       13 阅读
  4. Leetcode 20有效括号

    2024-04-03 05:00:08       13 阅读
  5. LeetCode20题 - 有效括号

    2024-04-03 05:00:08       41 阅读
  6. LeetCode_20_简单_有效括号

    2024-04-03 05:00:08       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 05:00:08       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 05:00:08       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 05:00:08       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 05:00:08       18 阅读

热门阅读

  1. MyBatis数据库逆向生成工具

    2024-04-03 05:00:08       10 阅读
  2. 20款高级 Python 装饰器

    2024-04-03 05:00:08       9 阅读
  3. es6中的Object.assign

    2024-04-03 05:00:08       14 阅读
  4. 黑客攻击自己上班的公司会怎样?

    2024-04-03 05:00:08       10 阅读
  5. vue3的ref和reactive对比

    2024-04-03 05:00:08       14 阅读
  6. Android compose 使用指纹验证

    2024-04-03 05:00:08       13 阅读