博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求一个括号序列的合法子串个数
阅读量:7086 次
发布时间:2019-06-28

本文共 402 字,大约阅读时间需要 1 分钟。

dp[i]表示以i结尾的合法的括号序列个数

维护一个栈,左括号push他的位置到栈中,右括号取出栈顶 dp[i] = dp[sta[top] - 1] + 1

然后对dp数组求和

int sta[MAXN * 10], top, ans[MAXN * 10];ll Ans;char s[MAXN * 10];int main() {  in, s + 1;  int len = strlen(s + 1);  lop1(i, len) {    if (s[i] == '(') sta[++top] = i;    else if (top) ans[i] = ans[sta[top--] - 1] + 1;    Ans += ans[i];  }  out, Ans;  return 0;}

转载于:https://www.cnblogs.com/storz/p/10275865.html

你可能感兴趣的文章
杭州某公司技术一面
查看>>
我的友情链接
查看>>
在word里面写完文章在里面添加本机的图标
查看>>
我的友情链接
查看>>
cp: omitting directory `foldera/'
查看>>
linux中磁盘配置
查看>>
自动编译脚本编写指南
查看>>
PLSQL_两表之间的相互操作
查看>>
针对于 welcome-file-list 不生效的解决办法
查看>>
缓存框架:EhCache
查看>>
Java连接池总结复习及推荐
查看>>
关于CSS制作水平/垂直居中对齐问题
查看>>
Java生成SM2证书基于BouncyCastle(cer)
查看>>
Tornado的Mongodb异步操作—Motor
查看>>
VC/MFC子窗体向父窗体传递参数的几种方法
查看>>
Docker Storage Driver 改为 devicemapper
查看>>
libjson c binary的安装步骤
查看>>
dexpot windows实用软件
查看>>
网站优化及最新互联网时事
查看>>
命名空间
查看>>