news 2026/4/30 12:55:29

2.3.蓝桥杯-正则问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2.3.蓝桥杯-正则问题

题目描述

考虑一种简单的正则表达式:

只由 x ( ) | 组成的正则表达式。

小明想求出这个正则表达式能接受的最长字符串的长度。

例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是 6。

输入描述

一个由 x()| 组成的正则表达式。输入长度不超过 100,保证合法。

输出描述

这个正则表达式能接受的最长字符串的长度。

输入输出样例

示例

输入

((xx|xxx)x|(x|xx))xx

输出

6

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

参考代码:

package Practice2; import java.util.Scanner; public class Main { /*定义全局变量记录正则表达式,之所以要定义成全局变量,是为了递归调用, * 如果是局部变量,那么处理正则表达式的函数的形参就需要是正则表达式, * 每一次递归都需要重新把整个正则表达式进行处理,不符合需求*/ static String str = null; /*定义索引记录处理到正则表达式哪一个字符*/ static int index = -1; //初值为-1,表示一开始没有字符 public static void main(String[] args) { /*题目中正则表达式由字符x、(、)、|构成*/ /*1.输入正则表达式*/ Scanner sc = new Scanner(System.in); str = sc.next(); /*2.调用method方法得出正则表达式能接受的最长字符串的长度*/ int result = method(); /*3.输出结果*/ System.out.println(result); } //用来统计正则表达式能接受的最长字符串的长度的方法 private static int method() { /*1.记录目前x的最大个数*/ int current = 0; /*2.记录最终x的最大个数*/ int max = 0; /*3.循环处理正则表达式*/ while (index < str.length() - 1) { //这里之所以用index < str.length()-1,是防止越界。因为如果是index < str.length(),当index等于str.length()-1时,index++就越界了 index++; //注:要处理的是字符 if (str.charAt(index) == 'x') { /*3.1.处理x时只需要个数自增*/ current++; } else if (str.charAt(index) == '(') { /*3.2.遇到(时需要递归调用,因为(中有一个新的子表达式,这个子表达式需要独立计算, 计算完成后,结果要返回给外层表达式*/ current = current + method(); } else if (str.charAt(index) == ')') { /*3.3.遇到)时意味着括号处理完毕,结束本轮循环*/ break; } else if (str.charAt(index) == '|') { /*3.2.遇到|时就需要判断|左、右两侧谁的正则长度大*/ max = Math.max(current, max); //关键:此时current就需要清0,current的之前值被max记录,新的值重新计算 current = 0; } } /*4.返回正则表达式最大长度*/ return Math.max(current, max); } }

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

DAMPT08S-YD铂热电阻温度采集模块:2-8路灵活选配 隔离485抗干扰

铂热电阻温度采集模块凭借 高精度、高稳定性、抗干扰能力强、适配工业环境 等核心优势&#xff0c;广泛应用于电力、工业制造、能源化工、智慧建筑、轨道交通等多个行业&#xff0c;是工业温度监测与自动化控制系统的关键硬件。一、产品参数 通道数量&#xff1a;2/4/6/8路 数据…

作者头像 李华
网站建设 2026/4/29 17:22:15

温室大棚远程控制系统解决方案:多维度在线监测,数据化细管农业

温室大棚远程控制系统是基于物联网、传感器、自动化控制与云计算技术的智慧农业解决方案&#xff0c;核心目标是打破传统大棚“人盯人”的管理模式&#xff0c;实现对温室内环境、灌溉、施肥等环节的远程监测、智能调控与数据化管理&#xff0c;最终提升作物产量与品质、降低人…

作者头像 李华
网站建设 2026/4/23 14:11:25

盲盒小程序对对碰玩法介绍说明~

游戏开局前&#xff0c;需从许愿卡池界面选择1张卡牌作为"许愿卡牌". 游戏过程中&#xff0c;每当卡池刷新出1张许愿卡牌&#xff0c;系统将额外赠送1张随机奖励卡牌。 奖励卡牌暂存于"补牌池"&#xff0c;可在游戏结束前随时点击"补牌"按钮领取…

作者头像 李华
网站建设 2026/4/23 11:33:52

导师又让重写?9个AI论文平台测评:专科生毕业论文+科研写作必备工具

导师又让重写&#xff1f;9个AI论文平台测评&#xff1a;专科生毕业论文科研写作必备工具 面对日益繁重的论文写作任务&#xff0c;专科生在毕业论文和科研写作中常常面临选题困难、资料搜集繁琐、格式规范不熟悉等挑战。为帮助更多学生高效完成学术任务&#xff0c;我们基于20…

作者头像 李华