远端评测题 1000ms 125MiB

最长括号匹配

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

对一个由 ()[] 四种括号组成的字符串,求出其中最长的括号匹配子串。具体来说,满足如下条件的字符串成为括号匹配的字符串:

  • ()[] 是括号匹配的字符串。

  • A 是括号匹配的串,则 (A)[A] 是括号匹配的字符串。

  • AB 都是括号匹配的字符串,则 AB 也是括号匹配的字符串。

例如:()[]([])()() 都是括号匹配的字符串,而 ][[(]) 则不是。

字符串 AA 的子串是指由 AA 中连续若干个字符组成的字符串。

例如,ABCABCCABABCABC 都是字符串 ABCABC 的子串,而 DBAACB 则不是。空串是任何字符串的子串。

输入格式

输入一行,为一个仅由 ()[] 组成的非空字符串。

输出格式

输出一行,为最长的括号匹配子串。若有相同长度的子串,输出在原字符串内出现位置靠前的子串。

([(][()]]()

[()]

())[]
()

提示

数据范围

nn 为输入字符串的长度。

对于 20%20\% 的数据,n102n \le {10}^2

对于 50%50\% 的数据,n104n \le {10}^4

对于 100%100\% 的数据,n106n \le {10}^6

B班基础数据结构

未认领
状态
已结束
题目
9
开始时间
2026-3-10 18:00
截止时间
2026-3-18 23:59
可延期
24 小时