news 2026/4/23 14:55:54

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/23 13:32:27

工业级电力测温模块!DAMPT08S-YD:2/4/6/8路 隔离485通讯抗电磁干扰

铂热电阻(如Pt100、Pt1000)温度采集模块&#xff0c;凭借高精度、高稳定性、抗干扰能力强的特性&#xff0c;是电力系统中温度监测的核心硬件之一。其核心作用是将铂热电阻的电阻信号转化为数字信号&#xff0c;实现对电力设备关键部位温度的实时采集、传输与报警&#xff0c;保…

作者头像 李华
网站建设 2026/4/23 12:38:34

强烈安利8个降AIGC工具,千笔·降AIGC助手帮你轻松降AI率

强烈安利8个降AIGC工具&#xff0c;千笔降AIGC助手帮你轻松降AI率 AI降重工具&#xff1a;让论文更自然&#xff0c;让学术更真实 在当前的学术环境中&#xff0c;越来越多的高校和期刊开始采用AIGC检测系统来评估论文的原创性。对于专科生而言&#xff0c;如何有效降低AI痕迹…

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

【SSM毕设源码分享】基于SSM+VUE的专业课程教学过程管理系统的教师模块的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华