1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

给定只含 (、)、* 的字符串,题意要求:在某个连续子串中,把所有 * 全部忽略(删除)后,剩下的括号序列必须是有效括号串。于是可将问题转化为:

  1. 先把整串中过滤出所有括号,得到只含 (、) 的序列 par,并记录这些括号在原串中的位置数组 pos。

  2. 在 par 上求“最长有效括号”(经典 LVP)——可用 O(n) DP:

    • 设 dp[i] 表示以 i 位置结尾的最长有效括号长度(单位:括号个数),若 par[i] == ')' 且与其匹配的左括号在 j = i - 1 - dp[i-1] 且 par[j] == '(',则 dp[i] = dp[i-1] + 2 (+ dp[j-1] 若 j-1 >= 0).

P4458.第1题-多多最长子串

    1000ms Tried: 194 Accepted: 48 Difficulty: 5 所属公司 : 拼多多
    算法与标签>动态规划

题目内容

多多最近在处理一个字符串问题,该字符串由 '((('、')))' 和 '∗*∗' 组成,多多希望找到最长的连续子串,使得当忽略所有 '∗*∗' 后,该子串是一个有效的括号子串。

有效括号子串需满足:

  1. 括号成对闭合:每个 '(((' 都有一个对应的 ')))'
  2. 正确嵌套顺序:右括号不能出现在对应的左括号之前

输入描述

第一行输入为一个整数 TTT, 表示测试用例的组数 (1<=T<=100)(1 <= T <= 100)(1<=T<=100)

接下来 TTT 组数据,每组测试用例包含两行:

第一行输入为一个整数 NNN , 表示字符串的总长度 (1<=N<=500,000)(1 <= N <= 500,000)(1<=N<=500,000)

第二行输入为一个长度为 NNN 字符串,字符串由 ((( 和 ))) 以及 ∗*∗ 组成

输出描述

输出包含 TTT 行

每一输出为一个整数,满足要求的最长的连续子串的长度

补充说明

空字符串是有效括号子串

样例1

输入

3
8
*(*(**))
4
(()*
8
*(()(*)*

输出

8
3
6

样例2

输入

2
4
****
4
)))(

输出

4
0

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 3, 53ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?