题目名称 1744. 最长括号匹配子串
输入输出 longest_matching.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2025-03-27加入
开放分组 全部用户
提交状态
分类标签
括号匹配 递推
分享题解
通过:10, 提交:17, 通过率:58.82%
Gravatar小福鑫 100 0.053 s 3.93 MiB C++
Gravatar小福鑫 100 0.059 s 3.93 MiB C++
Gravatarsyzhaoss 100 0.115 s 4.53 MiB C++
Gravatarrzzakioi 100 0.120 s 4.45 MiB C++
Gravatardbk 100 0.127 s 5.10 MiB C++
Gravatarrzzakioi 100 0.142 s 4.46 MiB C++
Gravatarychyyx 100 0.153 s 8.60 MiB C++
Gravatar陆晨洗 100 0.171 s 4.57 MiB C++
Gravatar杨蕙宇 100 0.184 s 4.48 MiB C++
Gravatardbk 100 0.191 s 5.05 MiB C++
关于 最长括号匹配子串 的近10条评论(全部评论)

1744. 最长括号匹配子串

★★   输入文件:longest_matching.in   输出文件:longest_matching.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

已知一括号字符串,其中只包含左右圆括号"(" 和 ")",请编程计算其最长的符合括号匹配规则的子串。

【输入格式】

一行,包含一个括号字符串;

【输出格式】

如果输入的字符串没有匹配的子串,输出-1;

否则,输出2行;

第一行一个整数,表示输入的字符串最长的符合括号匹配子串的长度;

第二行,一个字符串,表示符合题意的括号子串,如果存在多个,请输出最右侧的子串;

【样例输入1】

(()())(((((()))((( 

【样例输出1】

6
((()))

【样例1说明】

如样例所示,2个红色匹配子串长度均为6,根据题意要求,存在多个最优解时,输出最右侧的解,故第二行输出((()));

【样例输入2】

)))(((

【样例输出2】

-1

【数据规模与约定】

$40$%的数据,$length(字符串)<=1,200$;

$80$%的数据,$length(字符串)<=1×10^5$;

$100$%的数据,$length(字符串)<=1×10^6$;

【来源】

MR cheng