news 2026/6/22 23:18:10

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/6/15 14:20:04

收藏备用|程序员必看!零基础也能落地的大模型实战学习指南

AI大模型的浪潮早已席卷整个技术圈&#xff0c;“掌握大模型技能”不再是AI从业者的专属优势&#xff0c;更成为全体程序员突破职业瓶颈、提升核心竞争力的关键抓手。不少程序员满怀热情想要入局&#xff0c;却频频陷入困惑&#xff1a;“我没有AI相关基础&#xff0c;真的能学…

作者头像 李华
网站建设 2026/6/22 19:08:42

【SSM毕设全套源码+文档】基于ssm的优选农产品销售管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

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

作者头像 李华
网站建设 2026/6/22 19:05:30

在线教学课堂APP核心功能解析

随着数字技术与教育理念的融合&#xff0c;在线教学平台已成为辅助学习的重要工具。一款设计精良的在线教学课堂应用&#xff0c;其前端功能的核心在于构建流畅、直观且富有互动性的用户体验&#xff0c;旨在模拟并优化传统课堂中的有效环节&#xff0c;弥合时空距离带来的隔阂…

作者头像 李华
网站建设 2026/6/22 19:05:05

AA游戏脚本规范(AA Game Script)

1 前述 中文名&#xff1a;AA游戏脚本&#xff08;命名无任何含义仅是标识符&#xff09; 英文名&#xff1a;AA Game Script 简 称&#xff1a;AA脚本&#xff08;AAGS&#xff09; 作 者&#xff1a;ygluu&#xff08;码客&#xff09; WeChat: 48092788 AA脚本旨为&#x…

作者头像 李华
网站建设 2026/6/20 13:51:51

导师严选8个降AI率平台,千笔·专业降AI率智能体助你精准降AIGC

导师严选8个降AI率平台&#xff0c;千笔专业降AI率智能体助你精准降AIGC AI降重工具&#xff0c;助你轻松应对论文挑战 在当前学术写作中&#xff0c;越来越多的学生开始借助AI工具提升写作效率。然而&#xff0c;随之而来的AIGC率问题也成为了论文通过审核的一大障碍。如何在保…

作者头像 李华