• LeetCode第三十二题-判断字符串中最长的有效括号数


    Longest Valid Parentheses

    问题简介:给定一个只包含字符 ‘(’ 和 ‘)’ 的字符串,找到最长的有效括号子字符串的长度

    举例:

    1:

    输入: “(()”

    输出: 2

    解释: 最长有效子字符串是 “()”

    2:

    输入: “)()())”

    输出: 4

    解释: 最长有效子字符串是"()()"

    解法一:

    暴力遍历:遍历字符串从i=0开始,count代表有效子字符串长度,截取子字符串,通过一个子方法isValid()判断是否是有效子字符串,这个方法思路是对的,但是当字符串足够长时会超时

    复杂度分析:

    时间复杂度:o(n3)截取字符串需要o(n2),检查一遍需要o(n)

    空间复杂度:o(n)最长的子字符串就是o(n)

    解法二:

    在这种方法中,我们使用两个计数器left和right,首先,我们开始遍历从左到右的字符串,对于每个子字符串遇到’(’,我们增加left计数器和每个’)'我们增加right计数器,每当left等于right时,我们计算当前有效子字符串的长度并跟踪到目前为止找到的最大长度子字符串,如果right变得比left更大,我们将left和right重置为0.然后再从右向左遍历一遍

    复杂度分析:

    时间复杂度:o(n)

    空间复杂度:o(1)

    小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海

  • 相关阅读:
    跨浏览器的事件处理程序
    jQuery提交Form
    js 多种变量定义(对象直接量,数组直接量和函数直接量)
    Asp.net Eval 截取字符串
    sql执行顺序
    IDEA File Templates模板
    Vim快捷键大全(转)
    Rider+Unity+XLua环境配置
    一定要进行代码复查
    如何在ubuntu上面安装luasocket
  • 原文地址:https://www.cnblogs.com/lalalaczq/p/10823590.html
Copyright © 2020-2023  润新知