当前位置: 首页 > news >正文

【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)

http://www.cnnetsun.cn/news/106795.html

相关文章:

  • 如何快速掌握Vim插件管理:VAM的完整使用指南
  • 文献分区及影响因子批量查询
  • APKMirror安卓应用下载平台深度解析:从源码到实践
  • 终极FreeMarker模板调试工具:3分钟解决模板语法问题
  • QQScreenShot独立版技术解析:基于模块化架构的屏幕捕捉解决方案
  • 快速掌握SCPI Parser终极指南:构建专业仪器控制系统的完整解决方案
  • 自定义算子的“诞生记”:基于CANN Kernel自调工程的完整CI/CD流水线
  • 高效、稳定、可定制——EmotiVoice开源TTS优势全解析
  • 大模型应用开发(十八)_向量检索
  • NVIDIA显卡设置终极指南:从问题诊断到性能优化的完整解决方案
  • 聚星成链,蓝卓牵头成立“工厂操作系统生态联盟”共建产业新生态
  • 每天一道面试题之架构篇|可靠订单状态机与事务消息架构设计
  • 10分钟掌握开源美颜SDK核心技术:从算法原理到商业应用实战
  • EmotiVoice支持哪些语言?多语种语音合成能力测试报告
  • AI语音合成进入情感时代:EmotiVoice带来全新听觉体验
  • EmotiVoice支持WebAssembly吗?浏览器端运行可能性分析
  • StaMPS雷达数据处理:从零搭建专业位移监测系统
  • yt-dlp-gui终极指南:轻松掌握Windows视频下载利器
  • EmotiVoice是否支持语音情感随机扰动?增强自然感功能
  • QRemeshify终极指南:快速创建高质量四边形网格的完整教程
  • 如何免费获得高质量语音合成能力?EmotiVoice给你答案
  • Hive SQL中COALESCE 函数和NVL()函数、IFNULL函数区别
  • 四边形网格生成实战指南:掌握QuadriFlow高效工作流
  • 如何快速解决AMD GPU识别问题:终极故障排查指南
  • OpenProject企业版深度解析:从开源到商业化的全面升级
  • Next.js认证系统实战:基于Clerk的完整解决方案
  • DeepBench如何帮助你在5分钟内完成深度学习硬件性能精准评估?
  • PCB文件处理终极指南:用Python轻松解析Gerber和Excellon文件
  • 革命性API测试工具:WireMock UI让接口模拟变得前所未有的简单
  • EmotiVoice能否用于智能家居控制反馈?轻量级语音提示生成