news 2026/6/23 0:16:01

【ACWing】150. 括号画家

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【ACWing】150. 括号画家

题目地址:

https://www.acwing.com/problem/content/152/

达达是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。这一天,刚刚起床的达达画了一排括号序列,其中包含小括号 ( )、中括号 [ ] 和大括号 { },总长度为N NN
这排随意绘制的括号序列显得杂乱无章,于是达达定义了什么样的括号序列是美观的:

  1. 空的括号序列是美观的;
  2. 若括号序列 A是美观的,则括号序列 (A)、[A]、{A}也是美观的;
  3. 若括号序列 A、B都是美观的,则括号序列AB也是美观的。例如[(){}]()是美观的括号序列,而)({)[}](则不是。

现在达达想在她绘制的括号序列中,找出其中连续的一段,满足这段子串是美观的,并且长度尽量大。你能帮帮她吗?

输入格式:
输入一行由括号组成的字符串。

输出格式:
输出一个整数,表示最长的美观的子段的长度。

数据范围:
字符串长度不超过1 0 5 10^5105

可以用栈来做。当栈空,或者栈顶与遍历到的字符不匹配的时候,将下标入栈。这样栈顶存的就是最长美观子串的起始位置。如果匹配,则pop栈顶,并更新答案。代码如下:

#include<iostream>#include<stack>usingnamespacestd;intn;string s;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);cin>>s;n=s.size();s=" "+s;automatch=[](chara,charb){returna=='('&&b==')'||a=='['&&b==']'||a=='{'&&b=='}';};stack<int>stk;intres=0;for(inti=1;i<=n;i++){charch=s[i];if(ch=='('||ch=='['||ch=='{')stk.push(i);else{if(stk.empty()||!match(s[stk.top()],ch))stk.push(i);else{stk.pop();res=max(res,i-(stk.size()?stk.top():0));}}}printf("%d\n",res);}

时空复杂度O ( N ) O(N)O(N)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 5:41:16

如何快速掌握Vim插件管理:VAM的完整使用指南

如何快速掌握Vim插件管理&#xff1a;VAM的完整使用指南 【免费下载链接】vim-addon-manager manage and install vim plugins (including their dependencies) in a sane way. If you have any trouble contact me. Usually I reply within 24 hours 项目地址: https://gitc…

作者头像 李华
网站建设 2026/6/23 19:52:27

文献分区及影响因子批量查询

针对文献下载后的影响因子查询问题&#xff0c;手动逐个查询效率较低&#xff0c;而使用Zotero等工具配合插件操作又过于繁琐。为此&#xff0c;我们开发了一个Python封装模块&#xff0c;能够自动批量处理文件夹中的文献&#xff0c;快速查询并生成分析报告。请注意&#xff0…

作者头像 李华
网站建设 2026/6/23 19:51:04

APKMirror安卓应用下载平台深度解析:从源码到实践

APKMirror安卓应用下载平台深度解析&#xff1a;从源码到实践 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror 在安卓应用生态中&#xff0c;第三方应用下载平台扮演着重要角色。APKMirror作为一款开源项目&#xff0c;为开发者提供…

作者头像 李华
网站建设 2026/6/23 13:45:56

终极FreeMarker模板调试工具:3分钟解决模板语法问题

终极FreeMarker模板调试工具&#xff1a;3分钟解决模板语法问题 【免费下载链接】freemarker-online-tester Apache Freemarker Online Tester: 是一个用于在线测试 Apache Freemarker 模板的 Web 应用程序。它可以帮助开发者快速测试 Freemarker 模板的语法和功能。适合有 Fre…

作者头像 李华
网站建设 2026/6/23 18:39:22

QQScreenShot独立版技术解析:基于模块化架构的屏幕捕捉解决方案

QQScreenShot独立版技术解析&#xff1a;基于模块化架构的屏幕捕捉解决方案 【免费下载链接】QQScreenShot 电脑QQ截图工具提取版,支持文字提取、图片识别、截长图、qq录屏。默认截图文件名为ScreenShot日期 项目地址: https://gitcode.com/gh_mirrors/qq/QQScreenShot …

作者头像 李华