news 2025/12/22 16:37:14

【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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/20 23:17:02

终极指南:用macOS iSCSI Initiator免费扩展Mac存储空间的完整教程

终极指南&#xff1a;用macOS iSCSI Initiator免费扩展Mac存储空间的完整教程 【免费下载链接】iSCSIInitiator iSCSI Initiator for macOS 项目地址: https://gitcode.com/gh_mirrors/is/iSCSIInitiator 还在为MacBook存储空间不足而烦恼吗&#xff1f;macOS iSCSI Ini…

作者头像 李华
网站建设 2025/12/22 6:04:59

Citra模拟器终极指南:5步快速解决黑屏闪退问题

Citra模拟器终极指南&#xff1a;5步快速解决黑屏闪退问题 【免费下载链接】citra 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 还在为Citra模拟器的各种技术问题而烦恼吗&#xff1f;想要在电脑上流畅运行3DS游戏却总是遇到黑屏、闪退的困扰&#xff1f;…

作者头像 李华
网站建设 2025/12/20 23:16:58

svg2gcode:5分钟学会矢量图形到G代码的终极转换指南

svg2gcode&#xff1a;5分钟学会矢量图形到G代码的终极转换指南 【免费下载链接】svg2gcode Convert vector graphics to g-code for pen plotters, laser engravers, and other CNC machines 项目地址: https://gitcode.com/gh_mirrors/sv/svg2gcode 想要将精美的SVG矢…

作者头像 李华
网站建设 2025/12/22 3:00:36

ABAP RANGES(范围表)笔记

RANGES 是 ABAP 语言中用于快速定义范围表&#xff08;Range Table&#xff09; 的关键字&#xff0c;一种特殊的数据结构&#xff0c;用于表示一个值的范围。 基础语法&#xff1a;RANGES: <range_table> FOR <reference_object> [TYPE <type>].语法元素说明…

作者头像 李华
网站建设 2025/12/21 2:40:52

Upscayl批量放大功能失效终极解决方案指南

Upscayl批量放大功能失效终极解决方案指南 【免费下载链接】upscayl &#x1f199; Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy. 项目地址: https://gitcode.com/GitHub_Trending/up/upscayl 当…

作者头像 李华