news 2026/5/4 21:18:08

打卡信奥刷题(2756)用C++实现信奥题 P3719 [AHOI2017初中组] rexp

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2756)用C++实现信奥题 P3719 [AHOI2017初中组] rexp

P3719 [AHOI2017初中组] rexp

题目背景

为了解决形形色色的字符串匹配问题,正则表达式是一个强有力的工具。正则表达式通过定义一套符号体系,能够表示出需要查找的字符串所具有的性质。如a|aa能匹配aaa(a|b)c能匹配acbc

题目描述

完整的正则表达式过于复杂,在这里我们只考虑由()|a组成的正则表达式。运算遵循下列法则:

  1. 有括号时,我们总是先算括号内的部分;

  2. 当两个字符串(或由括号定义的子串)间没有符号时,我们总把它们连起来作为一个整体;

  3. |是或连接符,表示两边的字符串任取其一,若同一层里有多个或连接符,可以看作在这些或连接符所分开的若干字符串里任取其一。

例如,(aaa)aa|aa|(a(aa)a)(aaaaa)|(aa)|aaaaaaaaa|aaaa|aa是等价的,它们都能匹配长度为2 , 4 2,42,45 55的全a字符串。

下面给定一个简化正则表达式,试编程计算它最多能匹配多长的全a字符串。

输入格式

输入一行一个合法的简化正则表达式。

输出格式

一行一个整数,表示能匹配的最长全a字符串长度。

输入输出样例 #1

输入 #1

(aaa)aa|aa|(a(aa)a)

输出 #1

5

输入输出样例 #2

输入 #2

((a|aaa)|aa)|a

输出 #2

3

输入输出样例 #3

输入 #3

(a(aa|aaa)a|(a|aa))aa

输出 #3

7

说明/提示

【数据范围】

对于20 % 20\%20%数据,表达式长度不超过100 100100,且不存在括号。

对于40 % 40\%40%数据,表达式长度不超过100 100100

对于70 % 70\%70%数据,表达式长度不超过2 × 10 3 2 \times 10^32×103

对于100 % 100\%100%的数据,表达式长度不超过10 5 10^5105

保证表达式合法(即|两端和括号内运算结果均非空字符串)。

C++实现

#include<stdio.h>#include<string.h>inti=1;charch[100005];intwork(){intlen=0,t;while(1){i++;if(ch[i]==')'){returnlen;}//右括号必须写在前面if(ch[i]=='a')len++;if(ch[i]=='(')len+=work();if(ch[i]=='|'){t=work();return(len>t)?len:t;}//这个地方必须加return}}intmain(){scanf("%s",ch+1);intlen,num,sum=0,max=0;len=strlen(ch+1);while(i<=len){if(ch[i]=='a')sum++,i++;elseif(ch[i]=='('){num=work();sum=sum+num;}elseif(ch[i]=='|')if(sum>max)max=sum,sum=0,i++;elsesum=0,i++;elseif(ch[i]==')')i++;}printf("%d",(sum>max)?sum:max);return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 21:18:03

跟单高手:用数据化跟进,让客户复购率翻倍

很多销售人员觉得“只要勤奋地和客户保持联系&#xff0c;就能够获得高复购率”&#xff0c;于是在节日的时候送上问候&#xff0c;不断地推送产品信息&#xff0c;然而效果却微乎其微&#xff0c;真正高效的跟单&#xff0c;依靠的并不是嘴勤&#xff0c;而是以数据作为驱动&a…

作者头像 李华
网站建设 2026/5/3 7:19:48

基于单片机 PID 算法的温度控制调节器控制设计

一、系统整体设计方案 本系统以 STM32F103C8T6 单片机为控制核心&#xff0c;融合 PID&#xff08;比例 - 积分 - 微分&#xff09;算法实现高精度温度控制&#xff0c;适用于工业加热设备、恒温水箱、实验室反应釜等场景&#xff0c;可实现目标温度设定&#xff08;0-100℃&a…

作者头像 李华
网站建设 2026/5/3 8:18:55

基于Simulink的电机轴承润滑优化仿真

目录 手把手教你学Simulink 一、引言:为什么“电机温升不高,但轴承却干磨烧毁”?——润滑失效是可靠性黑洞! 二、轴承润滑失效机理:从油脂到卡死的退化链 润滑脂功能三要素: 失效路径: 关键指标: 三、应用场景:电动汽车驱动电机的长寿命轴承设计 系统需求 四…

作者头像 李华
网站建设 2026/5/1 8:11:54

基于51单片机的超声水位检测系统设计

摘 要 水位测量普遍应用于防洪、水库、天气预报等测量行业中。声波液位测量器是一款势头猛增的新兴技术&#xff0c;它做 为一款无触碰的测距仪器适应于各种复杂环境&#xff0c;因此&#xff0c;在繁杂的测距设备中脱颖而出。近年来&#xff0c;随微型计算机、微 型芯片、继电…

作者头像 李华
网站建设 2026/5/2 22:24:48

地信不同就业方向,该怎么规划职业路线?

下面我们接着之前的内容继续介绍&#xff0c;GIS各岗位不同的职业发展路线和方向。GIS的岗位类型较多&#xff0c;受篇幅限制&#xff0c;我们本篇文章只介绍三个类型的岗位&#xff0c;分别是&#xff1a;GIS数据处理、GIS项目管理和GIS研发。GIS数据处理GIS数据处理工程师-&g…

作者头像 李华