括号序列

题目描述

一个由小括号组成的字符串可以被称为一个括号序列。但一个括号序列可能并不满足括号匹配的要求。因此,我们可以进一步将满足括号匹配的括号序列成为“标准的括号序列。例如字符串")((())"是一个括号序列但不是标准的括号序列,而字符串"()(())"是一个标准的括号序列。
给定一个括号序列,你需要对求出:这个括号序列的所有不同的子串中,有多少个是标准的括号序列?
一个括号序列的子串指的是这个序列从某个位置起始、到某个位置截止的子字符串。如果两个子串拥有不同的起始位置或截止位置,那么它们就被认为是括号序列的不同的子串。
 

 

输入

包括一行一个字符串,为给定的括号序列。

 

输出

输出一个整数,为标准的括号序列的子串的个数。

 

样例输入

()(())

样例输出

4

 

提示

设输入字符串的长度为n。
对于30%的数据,满足n≤200。
对于60%的数据,满足n≤5000。
对于100%的数据,满足1≤n≤10^6。

题解:题目要求必须是子串,也就是要连续的,因此当前面有一个合法的话,如果紧接着又出现了一个合法的,那么方法数就是(1+1)种,如果前面有n种连续的合法的括号的话,紧接着又出现一个合法的,那么方法数就是(1+n),所以每当遇到一个合法的括号对的时候,看他前面是否有连续的括号对,用stack记录,用stack.pre来记录当以这个括号作为两个连续合法序列的分隔时,这个括号后面有多少个合法的序列。

 

#include <bits/stdc++.h>
#define ll long long
#define met(a,x) memset(a,x,sizeof(a))
#define inf 0x3f3f3f3f
using namespace std;
const int N=1e6+10;
const int mod=1e9+7;
char a[N];
struct node
{int x,pre;
} b;
stack<node> s;
int main()
{ios::sync_with_stdio(false);cin.tie(0);cin>>a+1;int len=strlen(a+1);ll ans=0;ll sum=0;for(int i=1; i<=len; i++){if(a[i]=='(')b.x=1;elseb.x=2;if(!s.empty()){if(s.top().x==1&&b.x==2){s.pop();if(s.empty()){ans+=(sum+1);sum++;}else{ans+=(s.top().pre+1);s.top().pre++;}}elses.push(b);}elses.push(b);}cout<<ans<<endl;return 0;
}

 

转载于:https://www.cnblogs.com/nublity/p/10278933.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[vue] vue变量名如果以_、$开头的属性会发生什么问题?怎么访问到它们的值?

[vue] vue变量名如果以_、$开头的属性会发生什么问题&#xff1f;怎么访问到它们的值&#xff1f; 报错 变量未定义 以 _ 或 $ 开头的属性 不会 被 Vue 实例代理&#xff0c;因为它们可能和 Vue 内置的属性、API 方法冲突。 你可以使用例如 $data.xxx或者_data.xxx 的方式访问…

[vue] vue使用v-for遍历对象时,是按什么顺序遍历的?如何保证顺序?

[vue] vue使用v-for遍历对象时&#xff0c;是按什么顺序遍历的&#xff1f;如何保证顺序&#xff1f; image 1、会先判断是否有iterator接口&#xff0c;如果有循环执行next()方法 2、没有iterator的情况下&#xff0c;会调用Object.keys()方法&#xff0c;在不同浏览器中&…

[vue] vue如果想扩展某个现有的组件时,怎么做呢?

[vue] vue如果想扩展某个现有的组件时&#xff0c;怎么做呢&#xff1f; 不对原组件进行更改的&#xff1a;使用Vue.extend直接扩展使用Vue.mixin全局混入HOC封装个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大…

typescript在ES3(IE7)环境下使用async、await

因为公司产品需要搞个Web App&#xff0c;但是又需要兼容IE7&#xff0c;这时候整个应用会非常复杂&#xff0c;尤其是在处理异步的时候&#xff0c;在我的选择中有两个方案 callback方案async/await经过衡量以后&#xff0c;决定使用async/await方案 配置typescript环境 $ mkd…

与歌谣通关前端面试题【CSS篇汇总目录】

我是歌谣 放弃很容易 但坚持一定很酷 欢迎 关注公众号小歌谣一起讨论前后端知识 CSS汇总 【CSS】 [css] 圣杯布局和双飞翼布局的理解和区别&#xff0c;并用代码实现 [css] CSS3有哪些新增的特性&#xff1f; [css] 在页面上隐藏元素的方法有哪些&#xff1f; [css] CSS选…

【LeetCode】按 tag 分类索引 (900题以下)

链表&#xff1a;https://www.cnblogs.com/zhangwanying/p/9797184.html &#xff08;共34题&#xff09; 数组&#xff1a;https://www.cnblogs.com/zhangwanying/p/9610923.html &#xff08;共139题&#xff09; 树&#xff1a;https://www.cnblogs.com/zhangwanying/p/67…

一个下载Google code源码的 绿色、迷你工具 MiniSVN v1.0

一个下载Google code源码的 绿色、迷你工具 MiniSVN v1.0 想下载Google code中的源码 不需要装各种软件&#xff0c;只需要一个小工具即可&#xff01; 如何使用&#xff1f; 访问一个谷歌开源项目网站&#xff0c;比如&#xff1a;https://code.google.com/p/deguang-ticke…

[vue] v-on可以绑定多个方法吗?

[vue] v-on可以绑定多个方法吗&#xff1f; <input type"text" :value"name" input"onInput" focus"onFocus" blur"onBlur" />个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c;…

[NOI2018]你的名字

SAM写的太不熟练了~~SAM上的线段树合并也不熟练~~~ 调了半天样例 题目大意&#xff1a; 给定一个S&#xff0c;Q次询问&#xff0c;每次给出T&#xff0c;l,r, 求对于S[l,r]&#xff0c;属于T的子串却不属于S[l,r]的子串有多少个 看上去挺简洁的一个问题。。。 暴力68pts 对于S…

Visual.Assist.X.V10.7.1940的汉化破解补丁

Visual Assist X V10.7.1940的汉化破解补丁&#xff0c;方便各位朋友。 从该版本开始&#xff0c;本博客会跟踪升级&#xff0c;请留意。 关于菜单的汉化请看&#xff1a;http://blog.csdn.net/afu45/article/details/9145293 汉化方法 先安装英文原版软件。下载地址&#…

此时无足够的可用内存,无法满足操作的预期要求,可能是由于虚拟地址随便造成的。请稍候重试。 .

vs提示“此时无足够的可用内存&#xff0c;无法满足操作的预期要求&#xff0c;可能是由于虚拟地址随便造成的。请稍候重试。” 下载下面的补丁就可以了 . 下载地址&#xff1a; http://download.csdn.net/detail/afu45/4053280

java目录

阅读目录&#xff1a; 0.Java下载安装1.HelloWorld2.Java语言基础&#xff1a;关键字3.Java语言基础&#xff1a;表示符4.Java语言基础&#xff1a;注释5.Java语言基础&#xff1a;常量和变量6.Java语言基础&#xff1a;运算符7.Java语言基础&#xff1a;语句8.Java语言基础&am…

HDU-2112-HDU Today

这题的话&#xff0c;坑点挺多的&#xff0c;我也WA了好几次。 首先&#xff0c;对于map&#xff0c;因为是多次使用&#xff0c;所以每次处理完一个图之后就要清空。 其次&#xff0c;就是对于DIjkstra跑图的时候&#xff0c;如果这个图是连通图的话&#xff0c;我们每次选取最…

Visual.Assist.X 菜单汉化

在Visual Studio 2010下 使用 Visual.Assist.X.V10.7.1940汉化破解补丁 之后&#xff0c; 细心的朋友会发现&#xff1a;Visual Studio的菜单内还是英文的。其实这个也是可以汉化的&#xff0c;方法如下&#xff1a; 在Microsoft Visual Studio的菜单上右键单击 -》 选择最后…

[vue] 说说你对vue的template编译的理解?

[vue] 说说你对vue的template编译的理解&#xff1f; 将template里的组件编译成虚拟dom个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

Visual.Assist.X.V10.7.1946的汉化破解补丁

Visual Assist X V10.7.1946的汉化破解补丁&#xff0c;方便各位朋友。 本博客会跟踪升级&#xff0c;请留意。 关于菜单的汉化请看&#xff1a;http://blog.csdn.net/afu45/article/details/9145293 汉化方法 先安装英文原版软件。下载地址&#xff1a;http://www.wholeto…

[vue] axios是什么?怎样使用它?怎么解决跨域的问题?

[vue] axios是什么&#xff1f;怎样使用它&#xff1f;怎么解决跨域的问题&#xff1f; axios 的是一种异步请求&#xff0c;用法和ajax类似&#xff0c;安装npm install axios --save 即可使用&#xff0c;请求中包括get,post,put, patch ,delete等五种请求方式&#xff0c;解…

iOS 10 之后权限设置

iOS 10 之后权限设置 麦克风权限&#xff1a;Privacy - Microphone Usage Description 是否允许此App使用你的麦克风&#xff1f; 相机权限&#xff1a; Privacy - Camera Usage Description 是否允许此App使用你的相机&#xff1f; 相册权限&#xff1a; Privacy - Photo Libr…

高晓松脱口秀--晓说(第一季第二季)mp3下载

首先推荐一款不错的路由器 399元返399元 相当于 0元购&#xff01; 具体我就不多说了&#xff0c;请点这里 晓说 第一季 (1-5) http://pan.baidu.com/share/link?shareid480859&uk4043605559 (6-10) http://pan.baidu.com/share/link?shareid480864&uk4043605559…

[vue] 你了解axios的原理吗?有看过它的源码吗?

[vue] 你了解axios的原理吗&#xff1f;有看过它的源码吗&#xff1f; 1.axios通过对Promise的封装实现异步请求&#xff1b; 2. if(answer 有){ if(这个问题到此为止){ return ‘有’; }else{ return 没; } }个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放…