题目描述
考虑一种简单的正则表达式:
只由 x ( ) | 组成的正则表达式。
小明想求出这个正则表达式能接受的最长字符串的长度。

例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是6。
输入
一个由x()|组成的正则表达式。输入长度不超过100,保证合法。
输出
这个正则表达式能接受的最长字符串的长度。
样例输入
((xx|xxx)x|(x|xx))xx
样例输出
6
思路:就是一个搜索问题,但是正则表达式有些地方容易混淆。
遇见左括号(,就递归;遇见x,计数+1;遇见右括号),就返回;遇见|,说明右边的计算完了,更新答案;最终返回最大值就可以了。
代码如下:

#include<bits/stdc++.h>
#define ll long long
using namespace std;const int maxx=1e2+10;
string s;
int n;inline int dfs(string t,int &i)
{int len=t.length();int max1=0,ans=0;for(;i<t.length();){if(t[i]=='x') max1++,i++;else if(t[i]=='('){max1+=dfs(t,i+=1);i++;}else if(t[i]=='|'){i++;ans=max(ans,max1);max1=0;}else return ans=max(max1,ans);}return ans=max(ans,max1);
}
int main()
{cin>>s;n=s.length();int pos=0;printf("%d\n",dfs(s,pos));return 0;
}

努力加油a啊,(o)/~

[蓝桥杯][2017年第八届真题]正则问题(DFS)相关推荐

  1. [蓝桥杯][2017年第八届真题]包子凑数(解题报告)

    问题 1886: [蓝桥杯][2017年第八届真题]包子凑数 时间限制: 1Sec 内存限制: 128MB 提交: 406 解决: 118 题目描述 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家 ...

  2. 题目 1886: 蓝桥杯2017年第八届真题-包子凑数

    时间限制: 1Sec 内存限制: 128MB 提交: 2378 解决: 789 题目描述 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子.每种蒸笼 ...

  3. 题目 1878: 蓝桥杯2017年第八届真题-青蛙跳杯子

    题目 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙. ...

  4. [蓝桥杯][2017年第八届真题]小计算器(模拟)

    题目描述 模拟程序型计算器,依次输入指令,可能包含的指令有 数字:'NUM X',X为一个只包含大写字母和数字的字符串,表示一个当前进制的数 运算指令:'ADD','SUB','MUL','DIV', ...

  5. [蓝桥杯][2017年第八届真题]小数第n位(数学)

    题目描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数. 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式. 本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始 ...

  6. 题目 1885: [蓝桥杯][2017年第八届真题]分巧克力+二分

    题目: 题目描述 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们. 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见,小明需要从这 N 块巧克 ...

  7. [蓝桥杯][2017年第八届真题]合根植物

    题目描述 w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列).每个格子里种了一株合根植物. 这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成 ...

  8. [蓝桥杯][2017年第八届真题]拉马车(String)

    题目描述 小的时候,你玩过纸牌游戏吗? 有一种叫做"拉马车"的游戏,规则很简单,却很吸引小朋友. 其规则简述如下: 假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸 ...

  9. [蓝桥杯][2017年第八届真题]分考场(dfs+剪枝)

    题目描述 n个人参加某项特殊考试. 为了公平,要求任何两个认识的人不能分在同一个考场. 求是少需要分几个考场才能满足条件. 输入 第一行,一个整数n(1<n<100),表示参加考试的人数. ...

最新文章

  1. Paxos算法之旅(四)zookeeper代码解析--转载
  2. DB2 V8,V9并存在同一 server 的处理
  3. 15 篇最新 AI 论文来袭!NLP、CV...人人有份 | 本周值得读
  4. linux共享xp打印机驱动下载,给debian共享winxp下的打印机
  5. python+selenuim自动化测试(六)弹窗的处理
  6. C++空间分配器简述学习笔记
  7. Linux下Qt使用QAudio相关类进行音频采集,使用Windows下的Matlab软件播放
  8. 内容查询部件 之 简单美化
  9. es6 filter方法_[ 翻译 ] ES6中数组去重的三种方法
  10. coreseek实战(一):windows下coreseek的安装与测试
  11. leach算法的实现过程_leach算法原理详解
  12. 每日一题-12.30-三态数据总线
  13. Linux中 ll 和 ls 区别
  14. 如何用计算机巧记英语词汇,小学英语单词巧记法
  15. 恋与制作人 服务器错误,恋与制作人登陆不了怎么办 登录失败无法登录DNS劫持全解析...
  16. 基于QlExpress实现薪资计算
  17. 最新Java开发进阶!我的华为面试经历分享,请查收
  18. 英语cymophanite猫眼石cymophanite单词
  19. 脑残式网络编程入门(五):每天都在用的Ping命令,它到底是什么?
  20. 华为android版本9什么意思,华为P9的手机系统是什么

热门文章

  1. C# 中的委托和事件(详解) ....
  2. swift5的SnipKit框架使用
  3. java web 颜色灰色_网站动态变灰解决方案(java web项目网站)
  4. OpenGL中的Uniform block size 的大小限制
  5. Android开发之Android Studio第三方库的六种依赖讲解说明
  6. PHP 底层的运行机制与原理
  7. python如何自动打印_利用Python每天自动打印练习题
  8. Mybatis源码分析--Mapper接口的代理生成原理
  9. 禅道 11.4.1 版本发布,主要优化细节
  10. Spring 事务提交回滚源码解析