news 2026/9/2 19:04:47

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/8/25 6:53:17

【图库分析|第十天】扩展空间图库分析功能

本部分内容主要来源于鱼皮智能协图云图库部分&#xff0c;并在笔者个人项目学习的基础上进行扩展衍生。由于项目开发文档已经足够详细&#xff0c;因此这里只记录要点。 这部分内容后端较为简单&#xff0c;主要是熟悉业务流程&#xff0c;开发思路&#xff0c;以及mybatisplus…

作者头像 李华
网站建设 2026/8/24 16:58:04

盲盒小程序一番赏玩法说明

1、每期主题的一番赏产品都会构成一个赏池&#xff0c;每个赏池包含若干赏品。"A赏""B赏""C赏"...等是对赏品的命名方式&#xff0c;代表商品。每一次抽赏可随机抽到赏品中的一款&#xff0c;并且每个商品的价格&#xff0c;数量&#xff0c;概率…

作者头像 李华
网站建设 2026/8/30 21:35:17

写作小白救星!8个AI论文网站深度测评,本科生毕业论文必备神器

写作小白救星&#xff01;8个AI论文网站深度测评&#xff0c;本科生毕业论文必备神器 在当前学术研究日益数字化的背景下&#xff0c;本科生在撰写毕业论文时常常面临选题困难、资料查找繁琐、格式规范不熟悉等问题。尤其是对写作经验不足的学生来说&#xff0c;如何高效完成高…

作者头像 李华
网站建设 2026/8/31 18:29:54

借助AI的智能分析能力,开题报告的内容优化变得更加科学合理

工具对比速览 工具名称 核心功能 适用场景 效率评分 特色优势 AIBiYe 开题报告生成/降重 中文论文全流程 ★★★★★ 国内院校适配度高 AICheck 初稿生成/格式检查 快速产出框架 ★★★★☆ 结构化输出优秀 AskPaper 文献综述辅助 外文文献处理 ★★★★ 跨…

作者头像 李华