P1944 最长括号匹配_NOI导刊2009提高(1)
2024-09-05 05:20:34
P1944 最长括号匹配_NOI导刊2009提高
题解
宁愿相信世上有鬼,也不能随便相信某谷题目标签
我想了半天然后看了眼题解,发现用栈来模拟就好了
栈来模拟,还要用到一个bool数组,标记是否已经匹配 use[ i ]
一串括号,入栈,遇到匹配的就弹出去,标记已经匹配,然后最后挑连续匹配的最大的就好了,因为题目要求子串
注意两个点:
1.q[top]数组存的是括号的标号,而不是top是存的括号标号
2.res记录暂时一共有多少个连续的匹配括号数,所以每遇到一个新的括号,都要更新一遍
具体可以结合代码
代码
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<string>
#include<cstring>
#include<queue> using namespace std; typedef long long ll; inline int read()
{
int ans=;
char last=' ',ch=getchar();
while(ch<''||ch>'') last=ch,ch=getchar();
while(ch>=''&&ch<='') ans=ans*+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
} const int maxn=1e6+;
char s[maxn];
bool use[maxn];
int top=,q[maxn];
int l,r,ans=,res=,l1=,r1=; int main()
{
scanf("%s",s+);
int len=strlen(s+);
memset(use,,sizeof(use));
for(int i=;i<=len;i++){
if((s[q[top]]=='('&&s[i]==')')||(s[q[top]]=='['&&s[i]==']')){
use[q[top--]]=;
use[i]=;
}
else{
q[++top]=i;
}
}
for(int i=;i<=len;i++){
if(!use[i]){
if(res>ans) ans=res,l=l1,r=r1;
res=; //不可以放到if里面
}
else{
if(res==) l1=r1=i;
else r1++;
res++; //不可以放到if里面
}
}
if(res>ans) ans=res,res=,l=l1,r=r1;
for(int i=l;i<=r;i++) printf("%c",s[i]);
return ;
}
一开始自己Hank自己然后就被自己 Hank si 了
1.())[]())[]
2.())[]([(][()]]()
最新文章
- Ubuntu raid5+lvm实验
- Python开源框架
- 谈谈Lucene和Solr索引存目录
- CentOS6.5 本地源搭建Ceph
- 探秘空值位图掩码(NULL bitmap mask)
- java新手笔记26 Frame
- Android群英传》读书笔记 (1) 第一章 Android体系与系统架构 + 第二章 Android开发工具新接触
- JSP学习笔记(三):简单的Tomcat Web服务器
- Oracle中使用透明网关链接到Sqlserver[Z]
- OC中最难的一部分内容:内存管理
- Week1(9月12日):很激动的第一次课
- linux 虚拟文件系统
- Button重写onClick两种方式
- C语言的格式符
- Docker 入门篇
- JZOJ5431 捕老鼠
- webpack创建页面的过程
- Linux 开机启动 php socket
- .htaccess 配置
- 如何实现一个Java Class 解析器
热门文章
- 解决spring-boot-maven-plugin插件打包,springboot启动时报找不到主main问题
- 纪念一下,时隔多年,继delphi上成功运行sql之后
- springboot和Redis集群版的整合
- 【问题】No manual entry for pthread_create in section 3
- 什么是领域模型(domain model)?贫血模型(anaemic domain model)和充血模型(rich domain model)有什么区别
- Ajax长连接和SignalR(刷新客户端数据)的区别
- Jupyter Notebook 插件安装
- 【转】BSON数据格式
- [ 转载 ]hashCode方法的相关用法
- Selenium(四)使用xpath定位元素