首页 > 其他分享 >栈的运用之括号匹配

栈的运用之括号匹配

时间:2023-01-01 14:22:09浏览次数:55  
标签:匹配 int 合法 括号 序列 运用

Longest Regular Bracket Sequence (CF5C)

洛谷镜像

题目大意

给出一个括号序列,求出最长合法子串和它的数量。
合法的定义:这个序列中左右括号匹配

#include<bits/stdc++.h>
using namespace std;
const int M=1e6+5;
bool f[M];
int stackk[M],tot;
int main()
{
	string s;
	cin>>s;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]=='(')
			stackk[++tot]=i;
		else
		{
			if(tot!=0)
			{
				f[stackk[tot]]=true;
				f[i]=true;
				tot--;
			}
		}
	}
	int ans=0,sum=0;
	for(int i=0;i<=s.size();i++)
	{
		if(f[i])
			sum++;
		else
		{
			ans=max(ans,sum);
			sum=0;
		}	
	}
	sum=0;
	int num=0;
	for(int i=0;i<=s.size();i++)
	{
		if(f[i])
			sum++;
		else
		{
			if(sum==ans) num++;
			sum=0;
		}	
	}
	if(ans==0) cout<<0<<" "<<1;
	else cout<<ans<<" "<<num;
	return 0; 
}

标签:匹配,int,合法,括号,序列,运用
From: https://www.cnblogs.com/zhouzhihao/p/16949273.html

相关文章

  • KMP字符串模式匹配详解
    KMP字符串模式匹配详解KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度......
  • linux 中对带有空格、括号的文件进行重命名
     001、[root@PC1test]#lsSraRunInfo(2).csv[root@PC1test]#mvSraRunInfo(2).csvnew_name##复制文件名重命名报错-bash:syntaxerrornearunexpe......
  • linux 中删除文件名中的括号
     001、[root@PC1test]#ls##测试数据SraRunInfo(1).csvSraRunInfo(2).csvSraRunInfo(3).csvSraRunInfo(4).csvSraRunInfo(5).......
  • 从各行业的实际运用中,窥见华为云虚拟专用网络VP的强大性能
    虚拟专用网络VP就一直是通信市场的必争之地。目前,虚拟专用网络VP已经广泛应用到了金融、游戏、跨境、政企、门店、零售等各行业领域。而不同的行业属性,对虚拟专用网络VP也有......
  • Z3首次运用
    虽然模仿痕迹较重,但是感觉抓住了精髓fromz3import*Datacmp=[0x66,0x4e,0xa9,0xfd,0x3c,0x55,0x90,0x24,0x57,0xf6,0x5d,0xb1,0x1,0x20,0x81,0xfd,0x36,0xa9,0x1f,0......
  • 超实用!帮你从零开始学会运用高格…
    三分法和黄金比例目的:主体放在这些在线,又或线的交点上,构图看起来就会较舒服。​​​​​​​​有好多同学觉得​​黄金比例​​有点虚,其实可能是没遇到一篇足够简单实用......
  • 【图像匹配】Superpoint+AslFeat+SIFT
    一、Superpoint1.基本思想2.网络结构 3.参考资料二、AslFeat1.基本思想2.网络结构3.参考资料三、SIFT......
  • 运用Python分析公募基金【量化投资】
    运用Python分析公募基金1、背景学校财富管理课程的期末论文是分析中国各种投资标的的收益,笔者分配到的研究的细分类别为:通过大集合转公募基金的方式,成立的公募基金的收益分......
  • Js利用正则表达式去除字符串的中括号
    原文链接:点我  //功能:1)去除字符串前后所有空格   //     2)去除字符串中所有空格(包括中间空格,需要设置第2个参数为:g)   functionTrim(str,is_g......
  • leetcode-28找出字符串中第一个匹配项的下标(kmp)
    28.找出字符串中第一个匹配项的下标给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不......