首页 > 其他 > 详细

【CH1801】括号画家

时间:2019-03-31 17:01:35      阅读:214      评论:0      收藏:0      [点我收藏+]

一道简单的括号匹配问题,如果是左括号就入栈,如果是右括号且与栈顶匹配则答案加2,如果不匹配则答案清零,每次都更新一下最优答案即可。

技术分享图片
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 char s[100005];
 6 char stk[100005];
 7 int top,maxlen=0;
 8 int main() {
 9     scanf("%s",s);
10     stk[++top]=s[0];
11     int len=0;
12     for (int i=1; i<strlen(s); i++) {
13         if (s[i]==stk[top]+1 || s[i]==stk[top]+2) {
14             len+=2;
15             stk[top]=\0;
16             top--;
17             maxlen=max(maxlen,len);
18             continue;
19         }
20         if (s[i]==40 || s[i]==91 || s[i]==123) stk[++top]=s[i];
21         else {
22             top=len=0;
23             memset(stk,0,sizeof(stk));
24         }
25     }
26     printf("%d",maxlen);
27     return 0;
28 }
AC Code

 

【CH1801】括号画家

原文:https://www.cnblogs.com/shl-blog/p/10631969.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!