代码随想录算法训练营day60|第十章 单调栈part03

84.柱状图中最大的矩形 代码随想录 今天是训练营最后一天,恭喜坚持两个月的录友们,接下来可以写一篇自己 代码随想录一刷的总结。好好回顾一下,这两个月自己的博客内容,以及自己的收获。 找到柱状图中最大的矩形可以转换成找h*w的最大值,h可以是每一个柱子的高度,而w是构成矩形的柱子的下标差(也就是矩形的宽)。h是显而易见的,但是w比较难求,文章里面巧妙地通过找当前柱子的最近的小于当前柱子高度的柱子(这两个柱子中间的柱子的高度都大于等于当前柱子的高度,于是这个矩形的高度就确定是当前柱子的高度了),计算二者直接之间的下标差,来进而得到w的间接的方式来求的。 使用双指针法来储存暴力搜索已经搜索的值可以节省很多时间,这道题和上一题接雨水很像,但是还是在某些定义上有些不同。这道题的辅助数组储存的是每个柱子左右边第一个小于当前柱子高度的柱子的下标,而接雨水找的是左右两边的最值,最值可以通过max函数来实现,但具体到第一个小于当前柱子高度这种,那就只能再嵌套一个循环了,嵌套使用的是while循环,逻辑是从当前位置向它的左/右边去找,一直找到下标为零处/末尾处,所以必须要先初始化最初用到的值,初始化成多少也是有讲究的,最左端的下标值没有左边的元素,所以初始化下标为-1,这样不仅合乎逻辑,也能用同样的公式来推导出矩形的面积,好吧其实有点废话了。 填充完两个数组之后,再进行一次遍历,必须遍历完每个元素,这是因为每个小矩形的高度都有可能成为最大矩形的高度。 int largestRectangleArea(vector<int>& heights) { vector<int> minLeftIndex(heights.size()); vector<int> minRightIndex(heights.size()); int size = heights.size(); // 记录每个柱子 左边第一个小于该柱子的下标 minLeftIndex[0] = -1; // 注意这里初始化,防止下面while死循环 for (int i = 1; i < size; i++) { int t = i - 1; // 这里不是用if,而是不断向左寻找的过程 while (t >= 0 && heights[t] >= heights[i]) t = minLeftIndex[t]; minLeftIndex[i] = t; } // 记录每个柱子 右边第一个小于该柱子的下标 minRightIndex[size - 1] = size; // 注意这里初始化,防止下面while死循环 for (int i = size - 2; i >= 0; i--) { int t = i + 1; // 这里不是用if,而是不断向右寻找的过程 while (t < size && heights[t] >= heights[i]) t = minRightIndex[t]; minRightIndex[i] = t; } // 求和 int result = 0; for (int i = 0; i < size; i++) { int sum = heights[i] * (minRightIndex[i] - minLeftIndex[i] - 1); result = max(sum, result); } return result; } 单调栈的做法,也很值得考究,因为其实本质上是找左右两边第1个小于它的值,这也符合单调栈的使用逻辑,所以是可以用单调栈来做的。但是这回不同于之前的,是需要从栈底到栈顶的元素是逐渐增大的,这样在遇到一个小于栈顶元素的值的时候,就能同时也得到这个元素的左边的小于它的值的下标,于是也就是题目中所要找的左右两边第一个小于它的值。这道题还有一个需要注意的点是。需要给heights数组的头部和尾部都增加一个元素0,这样的做法其实是为了防止如果给的数组本身就是单调递增的,那么这样的话就永远也不会进入到while循环里面,所以 result是不会有任何更新的,最后的结果也仍然是0,但是实际上这个值不应该是零,它是有值的,如果你在数组末尾加了一个0的话,那么等遍历到这个0元素的时候,它势必会小于栈顶元素,所以说必然会进入到while循环里面,这样也就会更新result。而之所以在数组前面也加上一个0,是因为本身第1个高度有可能成为最大矩形的高度,如果不加,那么第1个值只能沦为它后面值的所谓左边的第1个最小值,也就是说它永远都不可能成为一个独立的高度来考量,因为它左边没有最小值,这样做让在下标为零的时候,也能符合推导最大矩形的推导公式。

【华为OD机试】真题B卷-比赛评分(C++)

华为OD机试真题汇总目录 【华为OD机试】真题汇总A+B+C+D券(Python实现) 【华为OD机试】真题汇总A+B+C+D卷(JAVA实现) 【华为OD机试】真题汇总A+B+C+D卷(C++实现) 一、题目 题目描述: 一个有N个选手参加比赛,选手编号为1~N(3<=N<=100),有M(3<=M<=10)个评委对选手进行打分。 打分规则为每个评委对选手打分,最高分10分,最低分1分。 请计算得分最多的3位选手的编号。 如果得分相同,则得分高分值最多的选手排名靠前(10分数量相同,则比较9分的数量,以此类推,用例中不会出现多个选手得分完全相同的情况)。 二、输入输出 输入描述: 第一行为半角逗号分割的两个正整数,第一个数字表示M(3<=M<=10)个评委,第二个数字表示N(3<=N<=100)个选手。 第2到M+1行是半角逗号分割的整数序列,表示评委为每个选手的打分,0号下标数字表示1号选手分数,1号下标数字表示2号选手分数,依次类推。 输出描述: 选手前3名的编号。 注:若输入为异常,输出-1,如M、N、打分不在范围内。 三、示例 示例1: 输入输出示例仅供调试,后台判题数据一般不包含示例 输入: 4,5 10,6,9,7,6 9,10,6,7,5 8,10,6,5,10 9,10,8,4,9 输出: 2,1,5 说明: 第一行代表有4个评委,5个选手参加比赛 矩阵代表是4*5,每个数字是选手的编号,每一行代表一个评委对选手的打分排序, 2号选手得分36分排第1,1号选手36分排第2,5号选手30分(2号10分值有3个,1号10分值只有1个,所以2号排第一) 示例2 输入输出示例仅供调试,后台判题数据一般不包含示例 输入: 2,5 7,3,5,4,2 8,5,4,4,3 输出: -1 说明: 只有2个评委,要求最少为3个评委 示例3 输入输出示例仅供调试,后台判题数据一般不包含示例 输入: 4,2 8,5 5,6 10,4 8,9 输出: -1 说明: 只有2名选手参加,要求最少为3名 示例4 输入输出示例仅供调试,后台判题数据一般不包含示例 输入: 4,5 11,6,9,7,8 9,10,6,7,8 8,10,6,9,7 9,10,8,6,7 输出: -1 说明: 第一个评委给第一个选手打分11,无效分数 四、解题思路 定义 parseToIntVector 函数用于将字符串分割为整数向量。定义 parseToStrVector 函数用于将字符串分割为字符串向量。定义 comparePlayers 函数作为比较函数,用于排序队员信息。主函数中读取输入数据,处理输入的矩阵和队员信息。对每位队员的得分进行排序,并计算总分。将队员信息按照总分和最高分降序排列。输出前三名队伍的编号。 五、参考代码 /* * @Author: mgc * @Date: 2024-02-02 17:47:00 * @LastEditors: Do not edit * @LastEditTime: 2024-02-02 17:48:55 */ // #include<set> // #include<map> // #include<list> // #include<regex> // #include<cmath> // #include<queue> // #include<stack> // #include<bitset> // #include<utility> // #include<stdlib.

Springboot如何判断pom.xml中是否加载了某个jar依赖

这里可以使用一个取巧的方法来判断, 即通过使用上下文对象的getClassLoader().loadClass("要判断的jar包中的标志性类Reference地址"); 来加载某个jar包中的标志性类来判断pom.xml文件中是否加载了某个依赖, 如果加载成功表示pom中加载了某个jar 依赖, 如果不成功表示没有加载某个依赖, 如 判断pom.xml中是否加载了Tomcat依赖 conditionContext.getClassLoader().loadClass("org.apache.catalina.startup.Tomcat"); 完整示例代码如下: package cn.tekin.condition; import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.type.AnnotatedTypeMetadata; public class MyTomcatCondition implements Condition { @Override public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) { try { // 通过从上下文中 加载Tomcat的核心类来判断pom中是否添加了Tomcat依赖 conditionContext.getClassLoader().loadClass("org.apache.catalina.startup.Tomcat"); return true; } catch (ClassNotFoundException e) { return false; } } } 这个方法对应gradle也是同样适用的.

【华为OD机试】真题B卷-报文重排序(Python)

华为OD机试真题汇总目录 【华为OD机试】真题汇总A+B+C+D券(Python实现) 【华为OD机试】真题汇总A+B+C+D卷(JAVA实现) 【华为OD机试】真题汇总A+B+C+D卷(C++实现) 一、题目 题目描述:报文重排序 对报文进行重传和重排序是常用的可靠性机制,重传缓冲区内有一定数量的子报文,每个子报文在原始报文中的顺序已知,现在需要恢复出原始报文。 二、输入输出 输入描述: 输入第一行为N,表示子报文的个数,0 < N <= 1000。 输入第二行为N个子报文,以空格分开,子报文格式为 字符串报文内容+后缀顺序索引, 字符串报文内容由|a-z,A-Z)组成后缀为整形值,表示顺序。 顺序值唯一,不重复。 输出描述: EN输出恢复出的原始报文。按照每个子报文的顺序的升席排序恢复出原始报文,顺序后缀需要从恢复出的报文中删除掉 三、示例 用例1: 输入: 4 rolling3 stone4 like1 a2 输出: like a rolling stone 说明: 4个子报文的内容分别为roling,stone,like,a,顺序值分别为3,4,1,2,按照顺序值升序并删除掉顺序后缀得到恢复的原始报文: like a rolling stone 用例2: 输入: 8 Lgifts6 and7 Exchanging1 all2 precious5 things8 kinds3 of4 // 注: 这里需要注意:and7与Exchanging1有两个空格 输出: Exchanging all kinds of precious gifts and things 四、解题思路 从标准输入获取整数 n 和一个包含字符串的数组。process_input 函数处理输入数组,使用正则表达式匹配字符串中的字母和数字部分,并按数字部分排序。创建一个空列表 result 来存储匹配结果。遍历输入数组,对每个字符串进行匹配,提取内容和索引,将它们作为列表 [index, content] 添加到 result 中。对 result 列表按照索引排序。使用 map 函数提取排序后的内容,并用空格连接起来。最后打印输出处理后的结果。 五、参考代码 # -*- coding: utf-8 -*- ''' @Time : 2023/12/10 00:09:00 @Author : mgc @Version : 1.

【华为OD机试】真题B卷-报文重排序(JAVA)

华为OD机试真题汇总目录 【华为OD机试】真题汇总A+B+C+D券(Python实现) 【华为OD机试】真题汇总A+B+C+D卷(JAVA实现) 【华为OD机试】真题汇总A+B+C+D卷(C++实现) 一、题目 题目描述:报文重排序 对报文进行重传和重排序是常用的可靠性机制,重传缓冲区内有一定数量的子报文,每个子报文在原始报文中的顺序已知,现在需要恢复出原始报文。 二、输入输出 输入描述: 输入第一行为N,表示子报文的个数,0 < N <= 1000。 输入第二行为N个子报文,以空格分开,子报文格式为 字符串报文内容+后缀顺序索引, 字符串报文内容由|a-z,A-Z)组成后缀为整形值,表示顺序。 顺序值唯一,不重复。 输出描述: EN输出恢复出的原始报文。按照每个子报文的顺序的升席排序恢复出原始报文,顺序后缀需要从恢复出的报文中删除掉 三、示例 用例1: 输入: 4 rolling3 stone4 like1 a2 输出: like a rolling stone 说明: 4个子报文的内容分别为roling,stone,like,a,顺序值分别为3,4,1,2,按照顺序值升序并删除掉顺序后缀得到恢复的原始报文: like a rolling stone 用例2: 输入: 8 Lgifts6 and7 Exchanging1 all2 precious5 things8 kinds3 of4 // 注: 这里需要注意:and7与Exchanging1有两个空格 输出: Exchanging all kinds of precious gifts and things 四、解题思路 使用 Scanner 从标准输入读取整数 n 和一行字符串数组。定义 getResult 方法来处理输入的字符串数组,并返回排序后的结果字符串。使用正则表达式 Pattern 来匹配字符串中的字母部分和数字部分。遍历输入的字符串数组,提取字母部分和数字部分,将结果存储在一个列表中。对列表中的元素按照数字部分进行排序。将排序后的字母部分拼接为一个字符串,每个单词之间用空格分隔。去除最后一个多余的空格。输出最终拼接好的字符串。 五、参考代码 /* * @Author: mgc * @Date: 2024-02-02 17:47:00 * @LastEditors: Do not edit * @LastEditTime: 2024-02-02 17:48:55 */ // import java.

Vue.js+SpringBoot开发个人健康管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健康咨询模块 三、系统展示四、核心代码4.1 查询健康档案4.2 新增健康档案4.3 查询体检档案4.4 新增体检档案4.5 新增健康咨询 五、免责说明 一、摘要 1.1 项目介绍 基于JAVA+Vue+SpringBoot+MySQL的个人健康管理系统,包含了健康档案模块、体检档案模块、健康咨询模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,个人健康管理系统基于角色的访问控制,给普通用户、健康管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。 1.2 项目录屏 二、功能模块 个人健康管理系统,包含了健康档案模块、体检档案模块、健康咨询模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示。 2.1 健康档案模块 健康档案模块可以记录个人的基本信息、病史、过敏情况、药物使用、疫苗接种等健康相关信息。这些记录可以提供给医疗服务提供者,帮助他们更好地了解个体的健康状态,为个体提供更加个性化的医疗服务。 健康档案模块可以记录个体的健康监测数据,如体重、血压、血糖、心率等。这些数据可以帮助个人了解自己的健康状况,及时发现问题并采取相应的措施。 健康档案模块可以记录个体的疾病诊断和治疗信息,包括疾病的类型、治疗方案、用药情况等。这些信息有助于个体管理自己的疾病,并为医疗服务提供者提供参考,以便为个体提供更加精确的治疗建议。 2.2 体检档案模块 体检档案模块可以记录个人的体检数据,如身高、体重、血压、血糖、胆固醇等指标。这些数据可以提供给医疗服务提供者,帮助他们了解个体的健康状况,评估个体的健康风险和潜在疾病 体检档案模块可以追踪个人的体检历史,记录个体每次体检的结果和变化趋势。通过对比不同时间段的体检数据,可以及时发现个体的健康变化,提前预防和干预潜在的健康问题。 基于个人的体检数据和健康档案信息,体检档案模块可以提供针对个体的健康建议和指导。根据个体的体检结果和健康状况,系统可以生成个性化的健康改善方案,并提供相关的健康知识和建议,帮助个体更好地管理和改善自己的健康。 2.3 健康咨询模块 个人健康管理系统需要健康咨询模块是因为健康咨询是个体获取健康信息和专业指导的重要途径,健康咨询模块可以通过提供健康知识和教育资料,帮助个体了解健康问题和预防方法。通过解答常见的健康问题和提供权威的健康指导,个人可以更好地了解如何保持健康、预防疾病,并做出正确的健康决策。健康咨询模块可以根据个体的健康状况和需求,提供个性化的健康指导和建议。通过分析个体的健康档案和体检数据,系统可以针对个体的特定情况给出相应的健康咨询,如饮食建议、运动方案、心理健康指导等。这样,个人可以根据自己的实际情况进行健康管理,并更好地控制和改善自己的健康。 三、系统展示 四、核心代码 4.1 查询健康档案 @RequestMapping(value = "/getByPage", method = RequestMethod.GET) @ApiOperation(value = "查询健康档案") public Result<IPage<HealthArchives>> getByPage(@ModelAttribute HealthArchives healthArchives ,@ModelAttribute PageVo page){ QueryWrapper<HealthArchives> qw = new QueryWrapper<>(); User currUser = securityUtil.getCurrUser(); QueryWrapper<User> userQw = new QueryWrapper<>(); userQw.

Vue.js+SpringBoot开发天沐瑜伽馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 瑜伽课程模块2.3 课程预约模块2.4 系统公告模块2.5 课程评价模块2.6 瑜伽器械模块 三、系统设计3.1 实体类设计3.1.1 瑜伽课程3.1.2 瑜伽课程预约3.1.3 系统公告3.1.4 瑜伽课程评价 3.2 数据库设计3.2.1 瑜伽课程表3.2.2 瑜伽课程预约表3.2.3 系统公告表3.2.4 瑜伽课程选课表3.2.5 学生成绩表 四、系统展示五、核心代码5.1 查询瑜伽课程5.2 瑜伽课程预约5.3 瑜伽课程评价5.4 查询瑜伽器械5.5 新增公告 六、免责说明 一、摘要 1.1 项目介绍 基于JAVA+Vue+SpringBoot+MySQL的天沐瑜伽馆管理系统,包含了瑜伽课程、课程预约、课程安排、课程评价、瑜伽器械、系统公告模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,天沐瑜伽馆管理系统基于角色的访问控制,给瑜伽学员、瑜伽教练、瑜伽管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。 1.2 项目录屏 二、功能模块 本文设计的天沐瑜伽馆管理系统的包括了系统数据中心模块,用来存放管理系统通用的模块,另外分别设计了瑜伽课程模块、课程预约模块、系统公告模块、课程评价模块和瑜伽器械模块这五大模块,用于存放系统的核心业务逻辑。 2.1 数据中心模块 数据中心模块包含了对天沐瑜伽馆管理系统的基础模块,比如管理谁可以登录这套系统,记录这些人登录系统做了什么,不同的人拥有不同权限的管理。 2.2 瑜伽课程模块 瑜伽课程模块用于对瑜伽课程的数据进行管理,其中包括课程名称、课程介绍、课程类型、讲师ID、讲师、课程图片、课程价格、创建人等,可以通过此模块对瑜伽课程数据进行添加、编辑更新、删除、查询操作。 2.3 课程预约模块 课程预约模块是学生对课程的预约信息进行管理,学生可以对喜欢的瑜伽课程进行预约操作,包括团课和私教课程,瑜伽课程预约的字段包括课程ID、课程名称、课程介绍、课程类型、课程图片、课程价格、预约人、预约时间等,学生可以对管理员发布的瑜伽课程进行预约,也可以查询自己的历史预约情况,管理员可以维护学生的预约记录。 2.4 系统公告模块 系统公告模块用于管理员对系统公告的维护,系统公告的作用就是通知相关信息给学员,比如瑜伽课程的停课、调课信息等。系统公告字段其中包括公告标题、公告内容、图片、状态、排序值、发布人、创建人、创建时间等,瑜伽管理员可以增加、删除、编辑和条件查询系统公告,瑜伽学生可以查询系统公告。 2.5 课程评价模块 课程评价模块是维护学生的瑜伽课程的评价,当学生完成对某个瑜伽课程的学习后,有权对该瑜伽课程进行评价,以便于改善该课程的质量,瑜伽评价字段包括课程ID、课程名称、评价等级、评语、学生ID、学生、评价时间、创建人等。 2.6 瑜伽器械模块 瑜伽器械模块是维护瑜伽课程中所需要的器械数据,瑜伽机械是学生学习瑜伽课程的必备条件,所以系统设计了这个模块,瑜伽器械字段包括器械名称、品牌、功能用途、厂商、采购价、图片、备注、创建人等,瑜伽管理员可以新增、删除、修改瑜伽机械信息,瑜伽学员可以查询管理员发布的瑜伽器械明细。 三、系统设计 3.1 实体类设计 3.1.1 瑜伽课程 3.1.2 瑜伽课程预约 3.1.3 系统公告 3.1.4 瑜伽课程评价 3.2 数据库设计 3.

华为OD机试2024年最新题库(Python、JAVA、C++合集)

我是一名软件开发培训机构老师,我的学生已经有上百人通过了华为OD机试,学生们每次考完试,会把题目拿出来一起交流分享。 重要:2023年11月份开始,考的都是OD统一考试(C卷),题库已经整理好了,命中率95%以上。 2024年1-6月份考的就是这个题库,都是原题,大家如果发现解法不全的请私信我,谢谢。 以下是100分题目: 序号题目分值通过率试卷类型语言1寻找身高相近的小朋友100100%OD统一考试(C卷)python、java、C++2围棋的气100100%OD统一考试(C卷)python、java、C++3用连续自然数之和来表达整数100100%OD统一考试(C卷)python、java、C++4开源项目热榜100100%OD统一考试(C卷)python、java、C++5API集群负载统计100100%OD统一考试(C卷)python、java、C++6整数对最小和100100%OD统一考试(C卷)python、java、C++7素数之积100100%OD统一考试(C卷)python、java、C++8CPU算力分配100100%OD统一考试(C卷)python、java、C++9最大坐标值100100%OD统一考试(C卷)python、java、C++10寻找最富裕的小家庭100100%OD统一考试(C卷)python、java、C++11查找接口成功率最优时间段100100%OD统一考试(C卷)python、java、C++12分割均衡字符串100100%OD统一考试(C卷)python、java、C++13虚拟游戏理财100100%OD统一考试(C卷)python、java、C++14靠谱的车100100%OD统一考试(C卷)python、java、C++15执行时长100100%OD统一考试(C卷)python、java、C++16万能字符单词拼写100100%OD统一考试(C卷)python、java、C++17来自异国的客人100100%OD统一考试(C卷)python、java、C++18求最多可以派出多少支团队100100%OD统一考试(C卷)python、java、C++19最长子字符串的长度(一)100100%OD统一考试(C卷)python、java、C++20机场航班调度程序100100%OD统一考试(C卷)python、java、C++21数的分解100100%OD统一考试(C卷)python、java、C++22智能成绩表 100100%OD统一考试(C卷)python、java、C++23提取字符串中的最长数学表达式并计算100100%OD统一考试(C卷)python、java、C++24小朋友来自多少小区100100%OD统一考试(C卷)python、java、C++25停车场车辆统计100100%OD统一考试(C卷)python、java、C++26执行任务赚积分100100%OD统一考试(C卷)python、java、C++27最多购买宝石数目100100%OD统一考试(C卷)python、java、C++28求字符串中所有整数的最小和100100%OD统一考试(C卷)python、java、C++29堆内存申请100100%OD统一考试(C卷)python、java、C++30测试用例执行计划100100%OD统一考试(C卷)python、java、C++31按身高和体重排队100100%OD统一考试(C卷)python、java、C++32攀登者1100100%OD统一考试(C卷)python、java、C++33分披萨100100%OD统一考试(C卷)python、java、C++34计算面积100100%OD统一考试(C卷)python、java、C++35考勤信息100100%OD统一考试(C卷)python、java、C++36字符串变换最小字符串100100%OD统一考试(C卷)python、java、C++37分配土地100100%OD统一考试(C卷)python、java、C++38小华最多能得到多少克黄金100100%OD统一考试(C卷)python、java、C++39英文输入法100100%OD统一考试(C卷)python、java、C++40游戏分组100100%OD统一考试(C卷)python、java、C++41精准核酸检测100100%OD统一考试(C卷)python、java、C++42内存冷热标记100100%OD统一考试(C卷)python、java、C++43密码解密100100%OD统一考试(C卷)python、java、C++44密码输入检测100100%OD统一考试(C卷)python、java、C++45螺旋数字矩阵100100%OD统一考试(C卷)python、java、C++46火星文计算100100%OD统一考试(C卷)python、java、C++47灰度图恢复100100%OD统一考试(C卷)python、java、C++48找朋友100100%OD统一考试(C卷)python、java、C++49求幸存数之和100100%OD统一考试(C卷)python、java、C++50多段线数据压缩100100%OD统一考试(C卷)python、java、C++51生成哈夫曼树100100%OD统一考试(C卷)python、java、C++52机器人仓库搬砖100100%OD统一考试(C卷)python、java、C++53数组去重和排序100100%OD统一考试(C卷)python、java、C++54找座位100100%OD统一考试(C卷)python、java、C++55计算三叉搜索树的高度100100%OD统一考试(C卷)python、java、C++56小明找位置100100%OD统一考试(C卷)python、java、C++57转盘寿司100100%OD统一考试(C卷)python、java、C++58 手机App防沉迷系统100100%OD统一考试(C卷)python、java、C++59传递悄悄话100100%OD统一考试(C卷)python、java、C++60小明找位置100100%OD统一考试(C卷python、java、C++61字符串序列判定100100%OD统一考试(C卷python、java、C++62田忌赛马100100%D统一考试(C卷python、java、C++63幼儿园篮球游戏100100%D统一考试(C卷python、java、C++64部门人力资源分配100100%D统一考试(C卷python、java、C++65Wonderland游乐园100100%D统一考试(C卷python、java、C++66特殊的加密算法100100%D统一考试(C卷python、java、C++67信道分配100100%D统一考试(C卷python、java、C++68最大N个数与最小N个数的和100100%D统一考试(C卷python、java、C++68字符串序列判断100100%D统一考试(C卷python、java、C++69剩余银饰的重量100100%D统一考试(C卷python、java、C++70查找众数及中位数100100%D统一考试(C卷python、java、C++ 以下是200分题目: 序号题目分值通过率试卷类型语言1分月饼 200100%OD统一考试(C卷)python、java、C++2找城市200100%OD统一考试(C卷)python、java、C++3两个字符串间的最短路径问题200100%OD统一考试(C卷)python、java、C++4电脑病毒感染200100%OD统一考试(C卷)python、java、C++5 项目排期200100%OD统一考试(C卷)python、java、C++65G网络建设200100%OD统一考试(C卷)python、java、C++7可以组成网络的服务器200100%OD统一考试(C卷)python、java、C++8田忌赛马200100%OD统一考试(C卷)python、java、C++9任务处理200100%OD统一考试(C卷)python、java、C++10石头剪刀布游戏200100%OD统一考试(C卷)python、java、C++11最小矩阵宽度200100%OD统一考试(C卷)python、java、C++12部门人力分配200100%OD统一考试(C卷)python、java、C++13中文分词模拟器200100%OD统一考试(C卷)python、java、C++14Wonderland200100%OD统一考试(C卷)python、java、C++15跳马200100%OD统一考试(C卷)python、java、C++16符号运算200100%OD统一考试(C卷)python、java、C++17孙悟空吃蟠桃200100%OD统一考试(C卷)python、java、C++18最长子字符串的长度(二)200100%OD统一考试(C卷)python、java、C++19求满足条件的最长子串的长度200100%OD统一考试(C卷)python、java、C++20最长的指定瑕疵度的元音子串200100%OD统一考试(C卷)python、java、C++21抢7游戏200100%OD统一考试(C卷)python、java、C++22贪心歌手200100%OD统一考试(C卷)python、java、C++23考古学家200100%OD统一考试(C卷)python、java、C++24解密犯罪时间200100%OD统一考试(C卷)python、java、C++25员工派遣200100%OD统一考试(C卷)python、java、C++26字符串拼接200100%OD统一考试(C卷)python、java、C++27查找一个有向网络的头节点和尾节点200100%OD统一考试(C卷)python、java、C++28文件缓存系统200100%OD统一考试(C卷)python、java、C++29园区参观路径200100%OD统一考试(C卷)python、java、C++30快递员的烦恼200100%OD统一考试(C卷)python、java、C++31文本统计分析200100%OD统一考试(C卷)python、java、C++32矩阵匹配200100%OD统一考试(C卷)python、java、C++33图像物体的边界200100%OD统一考试(C卷)python、java、C++34 寻找最优的路测线路200100%OD统一考试(C卷)python、java、C++35运输时间200100%OD统一考试(C卷)python、java、C++36高效货运200100%OD统一考试(C卷)python、java、C++37贪吃的猴子200100%OD统一考试(C卷)python、java、C++38最长的指定瑕疵度的元音子串200100%OD统一考试(C卷)python、java、C++39反射计数200100%OD统一考试(C卷)python、java、C++40伐木工200100%OD统一考试(C卷)python、java、C++41二叉树的广度优先遍历200100%OD统一考试(C卷)python、java、C++42攀登者2200100%OD统一考试(C卷)python、java、C++43二叉树计算200100%OD统一考试(C卷)python、java、C++44学生重新排队200100%OD统一考试(C卷)python、java、C++45智能驾驶200100%OD统一考试(C卷)python、java、C++46路口最短时间问题200100%OD统一考试(C卷)python、java、C++47跳格子3200100%OD统一考试(C卷)python、java、C++48模拟目录管理200100%OD统一考试(C卷)python、java、C++49根据IP查找城市200100%OD统一考试(C卷)python、java、C++50会议室占用时间200100%OD统一考试(C卷)python、java、C++51亲子游戏200100%OD统一考试(C卷)python、java、C++52启动多任务排序200100%OD统一考试(C卷)python、java、C++53欢乐的周末200100%OD统一考试(C卷)python、java、C++54找数字200100%OD统一考试(C卷)python、java、C++55推荐多样性200100%OD统一考试(C卷)python、java、C++ 送给看到最后的人,华为OD机考交流QQ群:570033047,里面可以OD统一考试(C卷)交流机试、面试经验,我也会定期答疑~ 华为OD招聘,每年的1-5月份是高峰期,这个阶段呢,offer多,面试简单,薪资高,大家可以利用年前的时间好好准备和复习,取得一个不错的机试成绩~ 机考题库大概每半年更新一次,也就是说一直到2024年5月份,考的都是这份题库,大家有充足的时间来复习和准备~ 另外,这些题目是给大家参考的,考试过程中要注意重复率,重复率过高很判定作弊嫌疑,切记~

DVWA靶场-CSRF跨站请求伪造

CSRF(跨站请求伪造)简介 概念 CSRF(Cross—site request forgery),跨站请求伪造,是指利用受害者未失效的身份认证信息(cookie,会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下,以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账,改密等)。 CSRF与XSS的区别 CSRF属于业务逻辑漏洞,在服务器看来,所有的请求都是合法正常的; XSS,SQL注入等等都是属于技术漏洞; XSS:客户信任服务器; CSRF:服务器信任客户(经过身份认证的); CSRF攻击成功的前提 用户必须登录; 黑客必须懂得一些发包的请求; 服务器端不会有二次认证; 被害者是不知情的; 危害 修改用户信息,如用户头像、发货地址等 个人隐私泄露,机密资料泄露 执行恶意操作,如修改密码,购买商品,转账等(盗用受害者身份,受害者能做什么攻击者就能以受害者身份) 具体操作请看这篇文章pikachu靶场-csrf_pikachu csrf黑名单-CSDN博客 low等级 <?php if( isset( $_GET[ 'Change' ] ) ) { // Get input $pass_new = $_GET[ 'password_new' ]; $pass_conf = $_GET[ 'password_conf' ]; // Do the passwords match? if( $pass_new == $pass_conf ) { // They do! $pass_new = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass_new ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call!

perl 用 XML::LibXML DOM 解析 Freeplane.mm文件,生成测试用例.csv文件

Freeplane 是一款基于 Java 的开源软件,继承 Freemind 的思维导图工具软件,它扩展了知识管理功能,在 Freemind 上增加了一些额外的功能,比如数学公式、节点属性面板等。 在云计算中,解析XML元素和属性是一种常见的操作,因为XML是一种常见的数据交换格式,可以用来表示各种不同的数据结构和信息。Perl 是一种过去流行的脚本语言,可以用来处理各种文本数据,包括XML数据。 在Perl 中,可以使用各种模块和函数来解析 XML元素和属性。其中,最常用的模块是 XML::LibXML,它提供了一组完整的XML解析和处理函数,可以非常方便地解析XML文档中的元素和属性。 例如,下面是一个使用 XML::LibXML 模块 DOM方式 解析 XML元素和属性 的示例代码: 编写 test_LibXML_dom.pl 如下 #!/usr/bin/perl use 5.010; use strict; use warnings; use utf8; use XML::LibXML; # 解析 Freeplane.mm文件,生成测试用例.csv文件 # xt: 应用系统名的英文或拼音缩写 # testno: 测试用例编号 # zd?: 字段?的拼音缩写 # zd1: 模块名 # zd2: 功能名 # zd3: 正向 或 反向 # zd4: 测试要点 # zd5: 执行步骤 # zd6: 预期结果 # csylms:测试用例描述 if ($#ARGV !

Elasticsearch(11) intervals的使用

elasticsearch version 7.10.1 在Elasticsearch中,intervals查询是用来做复杂的区间表达式匹配的,它可以基于分析过的文本字段执行一系列复杂的关系运算。intervals查询特别适合于那些需要对文本数据进行模式匹配,而不只是单一词汇匹配的情况。 intervals语法 POST _search { "query": { "intervals" : { "my_text" : { "all_of" : { "ordered" : true, "intervals" : [ { "match" : { "query" : "my favorite food", "max_gaps" : 0, "ordered" : true } }, { "any_of" : { "intervals" : [ { "match" : { "query" : "hot water" } }, { "match" : { "query" : "cold porridge" } } ] } } ] } } } } } intervals查询用于找到文本字段中满足一系列间隔条件的文all_of子句要求所有列出的间隔条件都必须满足。ordered: 设置为true,表示间隔条件必须按照指定的顺序出现。intervals: 包含了一系列具体的间隔条件any_of: 至少有一个列出的间隔条件必须满足 第一个间隔条件 查找与"

每日OJ题_简单多问题dp④_力扣LCR 091. 粉刷房子

目录 力扣LCR 091. 粉刷房子 解析代码 力扣LCR 091. 粉刷房子 LCR 091. 粉刷房子 难度 中等 假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。 例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。 请计算出粉刷完所有房子最少的花费成本。 示例 1: 输入: costs = [[17,2,17],[16,16,5],[14,3,19]] 输出: 10 解释: 将 0 号房子粉刷成蓝色,1 号房子粉刷成绿色,2 号房子粉刷成蓝色。 最少花费: 2 + 5 + 3 = 10。 示例 2: 输入: costs = [[7,6,2]] 输出: 2 提示: costs.length == ncosts[i].length == 31 <= n <= 1001 <= costs[i][j] <= 20 class Solution { public: int minCost(vector<vector<int>>& costs) { } }; 解析代码 以某个位置为结尾,结合题目要求,定义状态表示:

sklearn.model_selection.learning_curve的详细介绍(包含ShuffleSplit()介绍)

提示:sklearn.model_selection.learning_curve的详细介绍 文章目录 1、需求分析2、learning_curve主要输出参数3、learning_curve主要参数4、learning_curve作用5、learning_curve代码6、ShuffleSplit() 1、需求分析 通过参数train_size选取不同规模的数据集,再分别在不同规模的数据集上做交叉验证,通过参数cv选取交叉验证的类型; 例如:我们想选取含有1000个样本的数据集的10%,33%,55%,78%,100%的数据做实验,探究不同数据量下模型的预测准确度,选取不同规模的数据集后,我们又想分别在不同规模的数据集下做一下5折交叉验证。我们就可以设train_size=array([0.1, 0.33, 0.55, 0.78, 1.]), cv=5。 2、learning_curve主要输出参数 train_sizes_abs:返回生成的训练的样本数,如[ 80 , 260 , 620,800 ],80=0.1×1000×[(5-1)/5]即train_sizes_abs[i]=train_size[i]×样本数×(cv对应每一次交叉验证的训练样本占总样本的百分比) train_scores:返回训练集分数,该矩阵为( len ( train_sizes_abs ) , cv分割数 )即(5,5)维的分数,每行数据代表该样本数对应不同折的分数。 test_scores:同train_scores,只不过是这个对应的是测试集分数 3、learning_curve主要参数 X:特征矩阵,包含输入样本的特征。 y:目标变量,包含与输入样本对应的真实标签。 train_sizes:一个数组或可迭代对象,表示训练集的不同大小的比例。每个比例都将生成一个学习曲线点。 cv:用于交叉验证的折数或交叉验证迭代器。 scoring:用于评估模型性能的指标。常见的指标包括准确率(accuracy)、均方误差(mean_squared_error)、R平方(r2_score)等。 shuffle:是否在每次迭代前对数据进行洗牌,默认为False。 random_state:随机数种子,用于控制随机性。 estimator:用于拟合数据的机器学习模型,例如分类器或回归器。 4、learning_curve作用 引用出处 5、learning_curve代码 代码如下(示例): from sklearn.metrics import confusion_matrix as CM import numpy as np import matplotlib.pyplot as plt from sklearn.naive_bayes import GaussianNB from sklearn.svm import SVC from sklearn.ensemble import RandomForestClassifier as RFC from sklearn.

数据结构(二)顺序表和链表

1.线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。 2.顺序表 2.1概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存 储。在数组上完成数据的增删查改。 顺序表一般可以分为: 1. 静态顺序表:使用定长数组存储元素。 2. 动态顺序表:使用动态开辟的数组存储。 我们在这里讲一下静态开辟的缺点: 1.我们不知道需要多少。 2.开辟多了(空间)浪费。 3.开辟少了(空间)不够用 同时我们讲一下动态开辟的优点: 1.不够用了可以开辟 2,开辟多了可以释放 .................................总之我们还是强烈建议使用动态开辟。 现在我们来创建一个顺序表: #include<stdio.h> int main() { struct seqsdfs { int *a; int size; //记录有效数据 int capacity //记录空间有多大 2.2 接口实现 静态顺序表只适用于确定知道需要存多少数据的场景。静态顺序表的定长数组导致N定大了,空 间开多了浪费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间 大小,所以下面我们实现动态顺序表。 typedef int SLDataType; // 顺序表的动态存储 typedef struct SeqList { SLDataType* array; // 指向动态开辟的数组 size_t size ; // 有效数据个数 size_t capicity ; // 容量空间的大小 }SeqList; // 基本增删查改接口 // 顺序表初始化 void SeqListInit(SeqList* psl); // 检查空间,如果满了,进行增容 void CheckCapacity(SeqList* psl); // 顺序表尾插 void SeqListPushBack(SeqList* psl, SLDataType x); // 顺序表尾删 void SeqListPopBack(SeqList* psl); // 顺序表头插 void SeqListPushFront(SeqList* psl, SLDataType x); // 顺序表头删 void SeqListPopFront(SeqList* psl); // 顺序表查找 int SeqListFind(SeqList* psl, SLDataType x); // 顺序表在pos位置插入x void SeqListInsert(SeqList* psl, size_t pos, SLDataType x); // 顺序表删除pos位置的值 void SeqListErase(SeqList* psl, size_t pos); // 顺序表销毁 void SeqListDestory(SeqList* psl); // 顺序表打印 void SeqListPrint(SeqList* psl); 3.

C#中网口数据(TCP/IP)发送与接收的主动模式与被动模式解析

在C#中,进行网络数据传输时,我们常常需要通过串口(网口)来进行数据的发送与接收。在串口通信中,有两种主要的通信模式:主动模式和被动模式。本文将详细阐述这两种模式之间的区别,以及在实际应用中的不同场景和优势。 1.主动模式与被动模式的区别 1.1主动模式(Active Mode) 在主动模式下,通信双方中的主动方(通常为主机)负责发起数据传输请求,而被动方(通常为从机)则处于被动接收的状态。 特点 主动方负责发起连接和数据传输,控制权在主动方手中。被动方只需响应主动方的请求,无需主动发起通信。通常适用于客户端-服务器架构。 优势 易于管理和控制,因为主动方可以决定何时发送数据。在某些应用场景中,如实时监控系统,可以确保数据的实时性和准确性。 局限性与适用性 局限性:主动模式下,如果主动方发送数据过快,而被动方处理数据较慢,可能导致数据丢失或缓冲区溢出。适用性:适用于客户端需要周期性获取数据的应用场景,如远程监控、数据采集等。 1.2 被动模式(Passive Mode) 在被动模式下,通信双方中的被动方(通常为主机)负责等待数据传输请求,而主动方(通常为从机)则负责发起请求。 特点 被动方负责等待并接收数据,控制权在被动方手中。主动方在需要发送数据时,主动发起请求,但需等待被动方的响应。通常适用于点对点通信。 优势 适用于从机数量较多的场景,因为每个从机仅需响应来自主机的请求。可以有效避免数据冲突和网络拥塞,因为从机不会同时发送数据。 局限性与适用性 局限性:被动模式下,如果从机数量较多,主机可能会面临较大的响应压力。适用性:适用于从机数量较多,且通信较为简单的应用场景,如家居自动化、小型局域网等。 2.主动模式与被动模式的应用实例 2.1 主动模式(Active Mode) 在主动模式下,客户端负责发起网络连接。客户端知道服务器的IP地址和端口,因此它会向这些信息发起TCP连接。客户端会主动向服务器发送数据,并等待服务器响应。 客户端代码 using System; using System.Net.Sockets; using System.Text; using System.Threading; class TcpClientExample { public void SendReceiveData(string serverIp, int serverPort) { try { TcpClient client = new TcpClient(serverIp, serverPort); NetworkStream stream = client.GetStream(); byte[] data = Encoding.ASCII.GetBytes("Hello, Server!"); stream.Write(data, 0, data.Length); byte[] buffer = new byte[1024]; int read = stream.

TCP机械臂控制

通过w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂 注意:关闭计算机的杀毒软件,电脑管家,防火墙 1)基于TCP服务器的机械臂,端口号是8888, ip是Windows的ip; 查看Windows的IP:按住Windows+r 按键,输入cmd , 输入ipconfig 2)点击软件中的开启监听; 3)机械臂需要发送16进制数,共5个字节,协议如下 0xff 0x02 x y 0xff 0xff:起始结束协议,固定的; 0x02:控制机械手臂协议,固定的; x:指定要操作的机械臂 0x00 红色摆臂 0x01 蓝色摆臂 y:指定角度 #include <head.h> #include <linux/input.h> #define SER_PORT 8888 // 服务器端口号 #define SER_IP "192.168.118.58" // 服务器IP #define CLI_PORT 9000 // 客户端端口号 #define CLI_IP "192.168.250.100" // 客户端IP int main(int argc, const char *argv[]) { // 1、创建用于连接的客户端套接字 int cfd = socket(AF_INET, SOCK_STREAM, 0); if (cfd == -1) { perror("socket error"); return -1; } printf("

TCP并发模型

对于之前的TCP服务器而言,一个服务器只能处理一个客户端你的操作,效率低,当客户端推出后,服务器也就结束了。 为了实现一个服务器可以应对多个客户端,我们先引入循环模型 一、循环TCP服务器 #include<myhead.h> #define SER_PORT 8888 //服务器端口号 #define CLI_IP "192.168.250.100" //服务器IP int main(int argc, const char *argv[]) { //1、创建一个套接字 int sfd = -1; sfd = socket(AF_INET, SOCK_STREAM, 0); //参数1:表示创建的是网络通信的套接字 //参数2:表示使用的是TCP通信协议 //参数3:参数2指定了协议,参数3填0即可 if(sfd == -1) { perror("socket error"); return -1; } printf("%d success sfd = %d\n", __LINE__, sfd); //3 //2、绑定IP地址和端口号 //2.1填充地址信息结构体 struct sockaddr_in sin; sin.sin_family = AF_INET; //地址族 sin.sin_port = htons(SER_PORT); //端口号 sin.sin_addr.s_addr = inet_addr(SER_IP); //IP地址 //2.2 绑定 if(bind(sfd, (struct sockaddr *)&sin, sizeof(sin)) ==-1) { perror("

管理类联考–复试–英语–口试–自我介绍–在职--通用

文章目录 2-3min第一段 寒暄+基本信息介绍第二段 本科经历+工作情况+考研原因第三段 性格特点第四段 未来规划&读研展望第五段 结束语 1 min第一段:寒暄+基本信息介绍第二段:本科经历+工作情况+考研原因第三段:未来规划+读研展望第四段:结束语 https://www.bilibili.com/video/BV1mG4y1T7KJ?p=4&vd_source=5021bbafad5e5afcf1984c99432f8353 2-3min 第一段 寒暄+基本信息介绍 1、打招呼 Good morning/afternoon,dear teachers/professors! 早上/下午好,尊敬的老师们/教授们! 2、表达感谢(二进一) ① l am glad to be here for this interview. ② Thank you for giving me the opportunity for this interview. 感谢您给我这次面试的机会。 3、基本信息1 My name is 姓名,年龄years old, and l come from家乡. 我叫xx,xx岁,来自xx。 第二段 本科经历+工作情况+考研原因 1、本科基本信息 ① l graduated from 本科学校 University in 毕业时间 with a major in 专业名称. ② l had finished my undergraduate education in 本科学校 in 毕业时间 with a major in 专业名称.

【C++】vector的使用 以及 迭代器失效问题

前言 经过前面string的学习,我们已经掌握了许多string的类函数,vector中许多类函数与string中的类函数使用起来相似,例如迭代器的使用在所有的容器中使用都一样,这里我们不再介绍,下面我们学习一些vector类的一些常用的函数。 1.vector的文档介绍 2. vector在C++中表示可变大小数组的序列容器,使用时需要包含头文件 < vector > ,就像数组一样,vector也采用的连续存储空间来存储元素。 vector的使用 一、 vector的构造函数二、容量相关的函数vector 空间增长问题在的讨论 三、vector 数据的访问四、vector的增删查改1、assign函数2、insert函数3、erase函数4、swap函数5、clear函数6、find函数 五、vector 迭代器失效问题 一、 vector的构造函数 vector的构造函数主要有四个,下面我们来一 一演示 第一个是无参的默认构造,第二个是我们可以用n个val去初始化vector,第三个也就是vector的拷贝构造,第四个是使用迭代器进行初始化构造。 int main() { vector<int> v1; v1.push_back(1); //push_back的作用就是插入一个元素 v1.push_back(2); v1.push_back(3); v1.push_back(4); vector<int> v2(4); //用4个匿名对象进行初始化 vector<int> v3(4, 9); //用4个9进行初始化 vector<int> v4(++v1.begin(), --v1.end());//用迭代器进行进行初始化 vector<int> v5(v3); //拷贝构造 return 0; } 观察监视: 二、容量相关的函数 我们先来看看前三个: int main() { vector<int> v1(10, 2); cout << "size:" << v1.size() << endl; cout << "capacity:" << v1.capacity() << endl; cout << "

Regex正则表达式 --java学习笔记

正则表达式 由一些特定字符组成,代表的是一个规则作用一:校验数据格式是否合法作用二:在一段文本中查找满足要求的内容 String提供了一个匹配正则表达式的方法 public boolean matches(String regex(正则表达式)) 判断字符串是否匹配正则表达式,匹配返回true,否则false 正则表达式的书写规则: 案例1 需求:检验用户输入的电话、邮箱、时间是否合法 代码: import java.util.Scanner; public class CheckPhoneEmailTime { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { System.out.print("请输入你要校验的手机号码or邮箱or时间(输入0退出):"); String str = sc.nextLine(); if(str.equals("0")) break; if(str.matches("(1[3-9]\\d{9})|" + //手机号码 "0\\d{2,3}-?[1-9]\\d{6,7}|" + //座机号码 "\\w{2,}@\\w{2,20}\\.\\w{2,10}|" + //邮箱号码 "([0-1]\\d)|(2[0-4])((:)|(-)|(\\.))[0-5]\\d((:)|(-)|(\\.))[0-5]\\d")) //时间格式 System.out.println("格式正确"); else System.out.println("格式错误"); } } } 运行结果: 案例2 import java.util.Arrays; public class Regex_test { public static void main(String[] args) { // public String replaceAll(String regex , String newStr); 按照正则表达式匹配的内容进行替换 //1.