LeetCode题目:32. Longest Valid Parentheses

硬件级Dalvik字节码粒度无痕HOOK及VMP取址码定位分析 2.通过硬件读写断点的输出信息 可知pc寄存器就是art解释器的取码地址 直接硬件执行断点在这个pc 即可直接trace所有的smali执行流 通杀所有机型系统。本文即将探讨的是 如何在硬件级别实现dalvik bytecode粒度的无痕拦截技术 并实现鼠标点击一键hook 指哪儿打哪儿 感受 button power 的强大魅力!4.由于硬件断点是同步的 断下后可随时硬件dump下这一瞬间的app内存映像 写入unicorn的内存模拟执行。解释器在解释执行前必会读取内存中的bytecode。 阅读详情

LeetCode题目:32. Longest Valid Parentheses

原题链接:https://leetcode.com/problems/longest-valid-parentheses/description/

解题思路:

运用栈进行()的匹配。每个’)’压入栈的时候,判断栈顶是否有’(‘,存在则抵消。如此反复,最后得到的栈即是无法匹配的字符。如果同时记录这些字符在s中下标,则可以得到所有无法匹配字符的位置。相邻的两个字符即是可匹配的最长字符串。

核心思想:

  1. 新建一个栈

  2. 将字符串所有字符新加一个标记flag,该标记表示它在s中的下标位置

  3. 遍历字符串,判断字符:

    ​ 如果为’(‘,直接压入。

    ​ 如果为’)’,判断栈顶:如果为’(‘,将’(‘丢弃,否则压入栈中。

  4. 将栈中字符依次取出,判断相邻两位字符的flag差值,如果比当前最大子串长度长,更新当前最大子串。

代码细节:

  1. 用pair保存字符的标记flag
  2. 有效字符串长度并不等于差值,而等于差值-1

坑点:

  1. 可能存在最大有效子串在s开头或者结尾。需要多加一次判断
  2. 可能会出现没有有效子串的情况

代码:

//#include <stack>
int longestValidParentheses(string s) {
    int longestLength = 0;                // 储存最长长度
    int validStringEnd;                   // 记录有效字符串的终点,用于遍历栈 
    stack<pair<char, int>> sta;           // 用于匹配()的栈,后一个int值记录该符号在字符串s中的位置 

    for (int i = 0; i < s.length(); i++) {
        // 如果为'(',入栈 
        if (s[i] == '(') {
            pair<char, int> p('(', i);
            sta.push(p);
        }
        // 如果为')'
        else {
            // 判断栈顶是否为'(',如果是,出栈,同时意为存在一个()匹配
            if (!sta.empty() && sta.top().first == '(')
                sta.pop();
            // 不是,则字符串未匹配,子串匹配结束 
            else {
                pair<char, int> p(')', i);
                sta.push(p);
            }
        }
    } 

    // 最后栈中剩下的就是无法匹配的部分,可以获得这些字符在s中的位置
    // 栈底的位置前,栈顶的位置后,按顺序排列 
    // 两个相邻的位置之间存在一个有效字符串

    validStringEnd = s.length();
    // 依次遍历这些字符串的长度,得到最大值 
    while (!sta.empty()) {
        pair<char, int> p = sta.top();
        sta.pop();
        if (validStringEnd - p.second - 1 > longestLength)
            longestLength = validStringEnd - p.second - 1;
        validStringEnd = p.second;
    }

    // 开头匹配 
    if (validStringEnd - 0 > longestLength)
        longestLength = validStringEnd - 0;

    return longestLength;
}
8.19华为OD机试真题 新系统 - 基站低能耗时段统计 (Java/Py/C/C++/Js/Go) 阅读详情

相关推荐

GWAS与eQTL相结合,进一步筛选疾病相关基因

欢迎关注”生信修炼手册”!在GWAS分析结果中,大部分显著的SNP位点都位于非编码区,很难直接挖掘这些位点的调控机制。通常假设与疾病关联的SNP位点通过调控基因表达来发挥作用,而eQTL...

庐州月光的博客 1万+

Leetcode Practice(0801)

Leetcode practice

Owen_5的博客 207

小程序强制更新避坑指南:手把手教你实现无缝升级

本文详细解析小程序强制更新的实现方法,重点介绍wx.getUpdateManager API的使用技巧,帮助开发者规避冷热启动机制下的版本管理陷阱。通过实战案例展示如何设计多级更新提示策略,确保用户无缝升级,提升小程序版本更新率。

star的博客 281

leetcode记录32.Longest Valid Parentheses

leetcode记录32.Longest Valid Parentheses hard Runtime: 8 ms, faster than 98.79% of C++ online submissions for Longest Valid Parentheses. Memory Usage: 10.6 MB, less than 80.80% of C++ online submissions...

我的博客 207

maya后台批量比对maya文件层级

在cg制作过程中,为了统一制作规范,提高效率我们Pipeline都会制作一个比对层级的工具下面介绍的是maya利用batch文件进行模型与绑定和材质文件进行比对层级。 直接上代码: #!usr/bin/env python # -*- encoding: utf-8 -*- """ @author:MCC @file: compareUI @time: 2018/11/21 16:29 """ i...

CGpipelineTD 1643

ABB机器人发送实时位置给PLC

本文使用中断方式实现,多任务要订购ABB功能包 Profinet总线组变量配置 注:映射为16位和32位均可用 声明数据 VAR num CurrentExAxisPos;!外轴位置 VAR robtarget pCurrentPos;!实时位置 var intnum TrapNum;!中断号 初始化开中断 IDelete TrapNum;!中断号 CONNECT TrapNum WITH iTrapCurPos;!连接中...

澍澍爸的blog 6778

LeetCode 32. Longest Valid Parentheses(栈)

题目来源:https://leetcode.com/problems/longest-valid-parentheses/ 问题描述 32.Longest Valid Parentheses Hard Given a string containing just the characters'('and')', find the length of the longest vali...

da_kao_la的博客 180

WorkBuddy 实战:从聊天窗口到 AI 工作台,打造个人自动化助理

大模型时代,对话式 AI 常被当作高级搜索框,难以沉淀为生产力。其根源在于上下文断裂——每次对话都从零开始。AI Agent 的核心原理是通过状态保持、工具调用与流程复用,将临时交互固化为可重复的协作机制。WorkBuddy 作为个人 AI 工作台,以 Agent + Skill + 工作流架构解决该问题:Skill 封装操作手册,工作区沉淀知识上下文,自定义指令约束输出风格。这种设计让周报生成、会议纪要、文档初稿、专利检索辅助等重复劳动实现流程化自动产出。掌握 WorkBuddy 怎么用,关键在于从自己重

weixin_33834910的博客 336

LeetCode 32. Longest Valid Parentheses 题解

本题是括号匹配问题的进阶版本。栈方法:记录索引,计算长度动态规划:状态定义和转移方程处理不同的括号匹配情况。

cannonjinx的博客 4165

长短期记忆网络(Long Short-Term Memory networks, LSTM)

如何简单的理解LSTM——其实没有那么复杂:

weixin_39910711的博客 2万+

PCL 法向量夹角剔除错误匹配点对【2026最新版】

实现了一种简单的基于对应点法线角度的对应关系去除方法。博客长期更新,本文最新更新时间为:2026年5月24日。

点云侠的博客 41万+

LeetCode(32)Longest Valid Parentheses

题目如下: Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring is "()",

BUILD 2772

3.嵌入式控制器EC学习,源码框架(60/64端口)(一)

服务函数剖析 上一篇讲到while循环会一直查询十六个标志位是否满足要求,一旦其中某个标志位为1时,程序将会执行相应的服务函数,而执行服务函数是通过函数指针(service_table[ _R1 ])();来实现的。接下来我们分别来看看这十六个服务函数分别包含了哪些内容。 16个函数的函数名如下: const FUNCT_PTR_V_V code service_table[16] = { // Hi-Level Service Service_PCI, // Host 6

qq_30135687的博客 4160

leetcode 32. Longest Valid Parentheses

leetcode 32. Longest Valid Parentheses  奇了怪了,为什么java版本的算法TLE,c++版本的代码acc,难到是两种语言本身的区别:String 以及 stack操作 java版本的: package my; import java.util.Stack; public class Solution { public stat

独钓寒江雪 380

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LeetCode刷题:32. Longest Valid Parentheses

LeetCode刷题:32. Longest Valid Parentheses 原题链接:https://leetcode.com/problems/longest-valid-parentheses/ Given a string containing just the characters '(' and ')', find the length of the longest valid...

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 305

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

32-Longest Valid Parentheses

题目描述: https://leetcode.com/problems/longest-valid-parentheses/ Given a string containing just the characters'('and')', find the length of the longest valid (well-formed) parentheses substring. E...

wj903829182的专栏 601

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Leetcode 32 Longest Valid Parentheses DP好题

就喜欢做这种想法题, 一开始的想法和之前做过的一道括号匹配差不多,用栈。 记录未匹配的括号位置,然后两两相减找到最大值,过了,但速度并不快。 在discuss中看到有人用DP,恍然大悟! dp[i]表示以当前位置为终点的最长长度,则只能在)处更新, 如果s[i-1-dp[i-1]]=='(',则说明当前位置可以和i-1-dp[i-1]位置匹配,dp[i]=dp[i-1]+2; 然后还要加上匹配位置之前的最长长度dp[i]+=dp[i-dp[i]];

无名山丘,崛起成峰 4093

【Leetcode】32. Longest Valid Parentheses

题目地址: https://leetcode.com/problems/longest-valid-parentheses/

数学、算法爱好者的博客 355

LeetCode //C - 32. Longest Valid Parentheses

【代码】LeetCode //C - 32. Longest Valid Parentheses。

Made in Code 940

Longest Valid Parentheses(动态规划)

Longest Valid Parentheses 题目 Given a string containing just the characters ‘(’ and ‘)’, find the length of the longest valid (well-formed) parentheses substring. Example 1: Input: “(()” Output: 2 Expl...

Vilin的博客 877

LeetCode第32题思悟——最长有效括号(longest-valid-parentheses)

LeetCode第32题思悟——最长有效括号(longest-valid-parentheses) 知识点预告 栈的使用方法; 长度的计算方法; 数组的妙用; 题目要求 给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-valid-pare...

博采众长,自成一派; 540

LeetCode 32. Longest Valid Parentheses

动态规划,求最长的合法括号的长度

codeman_cdb的专栏 1237

Leetcode 32. Longest Valid Parentheses 最长有效括号

Leetcode 32. Longest Valid Parentheses 最长有效括号 标签: Leetcode 题目地址: https://leetcode-cn.com/problems/longest-valid-parentheses/ 题目描述 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 输入: "(...

CoderWangSon 373

[LeetCode]32. Longest Valid Parentheses

[LeetCode]32. Longest Valid Parentheses题目描述思路开始:将’(‘压栈,当有’)’时, 出栈,结果+1 问题:统计的是所有合法的情况,不是最长合法的情况 修正:将对应的索引压栈,满足条件时,出栈,当前索引减去栈顶索引,栈初始化时先将-1压栈代码class Solution { public: int longestValidParentheses(s

Lcharon的博客 2870

Leetcode——32. Longest Valid Parentheses

一、题目描述 Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring

parishong的博客 427

【LeetCode记录】32. Longest Valid Parentheses

32. Longest Valid Parentheses 题目描述 Given a string containing just the characters ‘(’ and ‘)’, find the length of the longest valid (well-formed) parentheses substring. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-valid-parentheses 乍一看挺简单,就是简

weixin_44288164的博客 161
上一篇: LeetCode题目: 25. Reverse Nodes in k-Group
下一篇: LeetCode题目:37. Sudoku Solver
MyCodecOdecoDecodE
博客等级 码龄10年 66粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值