当前位置: 首页 > news >正文

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); } }

http://www.jsqmd.com/news/326365/

相关文章:

  • 2026年郑州企业用工风险咨询机构推荐:解决用工难题必备指南
  • 2026年山东广告公司推荐:基于实战案例与稳定性的TOP5权威榜单
  • Spring 配置 Springboot分页技术
  • 【SSM毕设全套源码+文档】基于ssm的学生选课系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 本地汽车托运物流平台哪家强?2026性价比之选,异地汽车托运物流技术领航者深度解析
  • 【SSM毕设源码分享】基于SSM+VUE的专业课程教学过程管理系统的教师模块的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 2026年值得推荐的小磨香油供应商,口碑好的选哪家
  • 【SSM毕设全套源码+文档】基于ssm的商城系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 2026年山东广告公司权威测评报告:基于百家客户匿名反馈的口碑深度解析
  • OFD文件处理神器!免费阅读转换还能加表情签章
  • 2026年山东广告公司推荐:多场景营销实战排名,针对品牌增长与效果失衡痛点
  • 总结纯芝麻酱品牌,驻马店源头厂家排名前十的有哪些?
  • 图片压缩神器!648KB小工具批量处理不损画质
  • 2026年山东广告公司推荐与评价:洞悉区域市场趋势,解决本地化营销与效果验证痛点
  • 2026年河南企业用工风险咨询机构推荐:五大机构深度解析
  • 盘点全国可靠的显微镜厂,上海炳宇光学厂凭啥脱颖而出?
  • 2026年山东广告公司推荐:多场景营销痛点评测,涵盖本地与跨境服务排名
  • 2026年湖北广告公司推荐:技术特性与服务支持横向评价,涵盖线上线下场景
  • 大模型入行避坑:转行工程师亲授,别只盯着算法岗,数据/平台才是多数人上岸密码
  • 2026年信誉佳的分配器厂家排名,这些品牌值得关注
  • Spring AI RAG实战指南:从零开始构建智能知识库(必收藏代码示例)
  • 第七章 ZooKeeper 技术内幕(二)
  • 拖延症福音:更专业AI论文平台,千笔AI VS 灵感风暴AI
  • 在线教学课堂APP核心功能解析
  • 小白也能上手:Ollama+Qwen3-Coder本地大模型配置全教程
  • 第七章 ZooKeeper 技术内幕(三)
  • 源码解析:CRMEB商品标签系统的数据库设计与业务逻辑实现
  • 2026年混凝土外加剂供应厂家推荐TOP10,帮助你的项目提高效率
  • 简历没有亮点怎么办?2026年提升简历吸引力的5个实用方法
  • 2026年湖北广告公司推荐:破解企业增长痛点,基于技术能力与效果评价