梅菊林
高校学生,主要学习人工智能领域,全栈开发,架构师相关可联系,可接毕业设计指导、自媒体运营指导。
java擅长,有需求可私信。
展开
-
(D卷,200分)- 篮球游戏(Java & JS & Python & C)
如老师按顺序放入1、2、3、4、5 共有 5 个编号的篮球,那么小朋友可以依次取出编号为1、2、3、4、5 或者 3、1、2、4、5 编号的篮球,无法取出 5、1、3、2、4 编号的篮球。每个篮球有单独的编号,老师可以连续放入一个或多个篮球,小朋友可以在桶左边或右边将篮球取出,当桶只有一个篮球的情况下,必须从左边取出。这是一个典型的模拟题目,要求按照老师放入篮球的顺序,检查是否能按照指定的取出顺序取出篮球。第二行的数字作为要检查是否能够按照放入的顺序取出给定的篮球的编号,其中篮球的编号用逗号进行分隔。原创 2024-06-06 13:17:01 · 13 阅读 · 0 评论 -
(D卷,200分)- 快递员的烦恼(Java & JS & Python & C)
快递公司每日早晨,给每位快递员推送需要送到客户手中的快递以及路线信息,快递员自己又查找了一些客户与客户之间的路线距离信息,请你依据这些信息,给快递员设计一条最短路径,告诉他最短路径的距离。路径1:快递员先把快递送到客户1中,接下来直接走客户1到客户2之间的直通路线,最后走投递站和客户2之间的路,回到投递站,距离为 1000 + 300 + 1200 = 2500。用例保证一定存在投递站到每位客户之间的路线,但不保证客户与客户之间有路线,客户位置及投递站均允许多次经过。所有快递送完后,快递员需回到投递站。原创 2024-06-06 13:12:25 · 12 阅读 · 0 评论 -
(D卷,200分)- 可以组成网络的服务器(Java & JS & Python & C)
在一个机房中,服务器的位置标识在 n*m 的整数矩阵网格中,1 表示单元格上有服务器,0 表示没有。题目要求统计机房中最大的局域网包含的服务器个数,其中局域网由相邻的服务器组成,相邻可以是同一行或者同一列。为了解决这个问题,我们可以使用深度优先搜索(DFS)算法或者广度优先搜索(BFS)算法来遍历矩阵中的每个服务器,并标记与之相连的其他服务器,最后统计局域网的大小。说明 [0][0]、[1][0]、[1][1]三台服务器相互连接,可以组成局域网。请你统计机房中最大的局域网包含的服务器个数。原创 2024-06-06 13:10:15 · 10 阅读 · 0 评论 -
(D卷,200分)- 可以处理的最大任务数(Java & JS & Python & C)
题目要求找出在给定任务的开始时间和结束时间范围内,最多能处理多少个任务。这是一个典型的贪心算法问题。我们可以按照任务的结束时间对任务进行排序,然后依次选择结束时间最早的任务,同时保证任务的开始时间要晚于上一个任务的结束时间。你可以在 si ≤ day ≤ ei 中的任意一天处理该任务,请返回你可以处理的最大任务数。后面 n 行表示各个任务的开始时间和终止时间,使用 si,ei 表示。输出为一个整数,表示可以处理的最大任务数。第一行为任务数量 n。原创 2024-06-06 13:08:00 · 5 阅读 · 0 评论 -
(D卷,200分)- 考古学家(Java & JS & Python)
说明 当石碑碎片上的内容为“a”,“b”,“ab”时,则可能的组合有“aabb”,“abab”,“abba”,“baab”,“baba”说明 当石碑碎片上的内容为“a”,“b”,“c”时,则组合有“abc”,“acb”,“bac”,“bca”,“cab”,“cba”如果存在石碑碎片内容完全相同,则由于碎片间的顺序变换不影响复原后的碑文内容,即相同碎片间的位置变换不影响组合。说明 当石碑碎片上的内容为“a”,“b”,“a”时,则可能的组合有“aab”,“aba”,“baa”读取输入n,表示石碑碎片的个数。原创 2024-06-06 13:05:38 · 6 阅读 · 0 评论 -
(D卷,200分)- 矩阵匹配(Java & JS & Python & C)
这个题目需要解决的问题是从一个 N*M 的矩阵中选择 N 个数,使得这些数分布在不同的行和列中,然后找出这些组合中第 K 大的数字的最小值。简单来说,就是对给定的矩阵进行组合,然后找出每个组合中第 K 大的数,最后取这些第 K 大数中的最小值。从一个 N * M(N ≤ M)的矩阵中选出 N 个数,任意两个数字不能在同一行或同一列,求选出来的 N 个数中第 K 大的数字的最小值是多少。要解决这个问题,首先我们需要生成所有可能的组合,然后针对每个组合找出第 K 大的数,最后取这些第 K 大数中的最小值即可。原创 2024-06-06 13:03:51 · 3 阅读 · 0 评论 -
(D卷,200分)- 九宫格按键输入(Java & JS & Python)
题目描述中提到了一个九宫格按键输入的问题,根据不同的模式(数字模式和英文模式)输出显示内容。九宫格按键输入,输出显示内容,有英文和数字两个模式,默认是数字模式,数字模式直接输出数字,英文模式连续按同一个按键会依次出现这个按键上的字母,如果输入”/”或者其他字符,则循环中断。输入处理:根据输入的字符序列,需要判断是数字还是字符,#表示切换模式,/表示延迟。/表示延迟,例如在英文模式下,输入 22/222,显示为 bc;延迟输入:在英文模式下,如果输入"/",会延迟一定时间再输出。输出 123adjjm。原创 2024-06-06 13:02:25 · 3 阅读 · 0 评论 -
(D卷,200分)- 结队编程(Java & JS & Python & C)
结队小组满足 level[i] < level[j] < level[k] 或者 level[i] > level[j] > level[k],理解题目要求:题目给定了员工的数量和他们的职级,要求计算可能的结队小组数量。从部门中选出序号分别为 i、j、k 的3名员工,他们的职级分贝为 level[i],level[j],level[k],分析解题思路:我们可以通过遍历所有三名员工的组合,并检查它们的职级是否满足递增或递减的条件,来计算可能的结队小组数量。请你按上述条件计算可能组合的小组数量。原创 2024-06-06 13:00:57 · 3 阅读 · 0 评论 -
(D卷,200分)- 简易内存池(Java & JS & Python)
释放的内存块可以被再次分配,不能二次释放,且释放操作只针对首地址的单个内存块。RELEASE=释放的内存首地址 表示释放掉之前分配的内存,释放成功无需输出,如果释放不存在的首地址则输出error。第四条指令,申请20字节内存,09地址内存连续空间不足20字节,往后查找到3049地址,返回首地址30。第三条指令,释放首地址为0的内存申请,0~9地址内存被释放,变为空闲,释放成功,无需输出。释放掉之前分配的内存时,释放成功无需输出,如果释放不存在的首地址则输出error。不会释放已申请的内存块的中间地址。原创 2024-06-06 12:58:55 · 3 阅读 · 0 评论 -
(D卷,200分)- 计算疫情扩散时间(Java & JS & Python & C)
在一个地图中(地图由n*n个区域组成),有部分区域被感染病菌。一行N*N个数字(只包含0,1,不会有其他数字)表示一个地图,数字间用,分割,0表示未感染区域,1表示已经感染区域 每N个数字表示地图中一行,输入数据共表示N行N列的区域地图。进行BFS搜索,每次从队列中取出一个感染的区域坐标,然后检查其周围四个区域是否有未感染的区域,如果有,则将其感染,并将其坐标加入队列。例如输入1,0,1,0,0,0,1,0,1,表示地图。输入 1,0,1,0,0,0,1,0,1。输入 1,1,1,1,1,1,1,1,1。原创 2024-06-06 12:54:22 · 2 阅读 · 0 评论 -
(D卷,200分)- 机器人走迷宫(Java & JS & Python)
然后,从机器人的起始位置开始进行深度优先搜索,标记所有可以到达的位置,并统计陷阱方格和不可达方格的数量。这个题目是一个关于迷宫路径规划的问题,需要计算出给定房间中的陷阱方格和不可达方格的数量。该输入对应的迷宫如下图,没有陷阱方格,不可达方格有4个,分别是(4,0) (4,1) (5,0) (5,1)有些地方是机器人无法到达的的,如标记为A的方格,称之为不可达方格,不可达方格不包括墙壁所在的位置。每一个方格以坐标(x,y)描述。说明 该输入对应上图示例中的迷宫,陷阱方格有2个,不可达方格有3个。原创 2024-06-06 12:51:54 · 3 阅读 · 0 评论 -
(D卷,200分)- 欢乐的周末(Java & JS & Python & C)
地图上有三种不同的区域:1表示障碍物,2表示小华可以到达的位置,3表示小花可以到达的位置。聚餐地点的标志是小华和小花都可以到达的位置,也就是地图上既有2又有3的位置。算法的主要逻辑是遍历地图上所有的位置,如果某个位置是聚餐地点,并且小华和小花都能到达该位置,就增加计数器的值。通过手机交流,他们在地图上选择了多个聚餐地点(由于自然地形等原因,部分聚餐地点不可达),求小华和小为都能到达的聚餐地点有多少个?判断小华和小花是否都能到达某个位置的方法是,判断该位置上下左右四个方向的位置是否可以到达,并且不是障碍物。原创 2024-06-06 12:49:30 · 2 阅读 · 0 评论 -
(D卷,200分)- 根据IP查找城市(Java & JS & Python & C)
注:最佳匹配即包含待查询IP且长度最小的IP段,比如例子中3.4.4.4最佳匹配是City2=3.3.3.3,4.4.4.4,5.5.5.5的最佳匹配是City3=2.2.2.2,6.6.6.6。举例:假如输入IP列表为IPa,IPb,两个IP均未有匹配城市,此时输出为",",即只有一个逗号分隔符,两个城市均为空;对于每个查询的IP,需要在城市的IP段列表中找到包含该IP的城市,并且选择最小的IP段范围。首先,根据输入的城市的IP段列表和查询的IP列表,需要编写算法来实现匹配最佳的城市。原创 2024-06-06 12:47:32 · 3 阅读 · 0 评论 -
(D卷,200分)- 高效货运(Java & JS & Python & C)
每种货物有其单件重量和单件运费利润。货车每次发车时必须同时装载货物 A 和货物 B,且货物 A 和货物 B 不可切割。所以老李的挑战是如何选择合适数量的货物 A 和货物 B,使得每次满载运输时的利润最大化。老李每次发车时载货总重量刚好为货车额定的载货重量 wt,车上必须同时有货物 A 和货物 B ,货物A、B不可切割。货物 A 单件重量为 wa,单件运费利润为 pa。货物 B 单件重量为 wb,单件运费利润为 pb。第四列输入为货物 A 的单件运费利润 pa。第五列输入为货物 B 的单件运费利润 pb。原创 2024-06-06 12:45:51 · 5 阅读 · 0 评论 -
(D卷,200分)- 高效的任务规划(Java & JS & Python & C)
随后的 N 行每行两个整数,第一个表示 B(0原创 2024-06-05 13:14:08 · 12 阅读 · 0 评论 -
(D卷,200分)- 符号运算(Java & JS & Python & C)
解析字符串表达式: 首先需要编写一个函数来解析输入的字符串表达式,将其转换为计算机可以理解的格式,比如使用逆波兰表达式。计算结果: 接下来,实现一个计算器函数,能够按照逆波兰表达式的顺序计算出结果。处理异常情况: 在计算过程中,需要处理除数为0的情况,以及结果的最简化表示。结果为整数或分数,分数必须化为最简格式(比如6,3/4,7/8,90/7)字符串格式的表达式,仅支持±*/,数字可能超过两位,可能带有空格,没有负数。如果结果为负数,那么分子分母不可再约分,可以为假分数,不可表达为带分数。原创 2024-06-05 13:12:07 · 11 阅读 · 0 评论 -
(D卷,200分)- 分月饼(Java & JS & Python & C)
中秋节,公司分月饼,m 个员工,买了 n 个月饼,m ≤ n,每个员工至少分 1 个月饼,但可以分多个,12 = 1 + 5 + 6(Max1 = 6, Max2 = 5,Max3 = 1,不满足要求)12 = 1 + 4 + 7(Max1 = 7, Max2 = 4,Max3 = 1,满足要求)12 = 2 + 4 + 6(Max1 = 6, Max2 = 4,Max3 = 2,满足要求)12 = 3 + 4 + 5(Max1 = 5, Max2 = 4,Max3 = 3,满足要求)原创 2024-06-05 13:10:09 · 8 阅读 · 0 评论 -
(D卷,200分)- 反射计数(Java & JS & Python & C)
有一个物体从给定的初始位置出发,根据给定的速度进行移动,遇到矩阵的边缘则发生镜面反射。给定一个初始位置和速度,一个物体从给定的初始位置出发,在给定的速度下进行移动,遇到矩阵的边缘则发生镜面发射。矩阵以左上角位置为 [0, 0](列(x),行(y)),例如下面A点坐标为 [2, 1](第二列,第一行)初始位置为(2,1),速度为(1,-1),那么13个时间单位后,经过点1的个数为3。时间的最小单位为 1,不考虑小于 1 个时间单位内经过的点。时间的最小单位为1,不考虑小于1个时间单位内经过的点。原创 2024-06-05 13:08:20 · 6 阅读 · 0 评论 -
(D卷,200分)- 伐木工(Java & JS & Python & C & C++)
一根10米长的树木,伐木工可以切割方式一:3,4,3,也可以切割为方式二:3,2,2,3,但方式二伐木工多切割一次,增加切割成本却买了一样的价格,因此并不是最优收益。一根X米长的树木,伐木工切割成不同长度的木材后进行交易,交易价格为每根木头长度的乘积。这道题目要求我们针对给定长度的树木,找到一种切割方案,使得切割后的木头长度乘积之和最大化。一根4米长的树木,伐木工不需要切割为2 * 2,省去切割成本,直接整根树木交易,为4 * 1,收益最大为4。一根2米长的树木,伐木工不切割,为2 * 1,收益最大为2。原创 2024-06-05 13:06:11 · 4 阅读 · 0 评论 -
(D卷,200分)- 发广播(20210310)
题目要求根据给定的广播站之间的连接情况,计算最少需要发送广播站的数量,才能保证所有的广播站都收到消息。这是一个典型的图的连通性问题,可以通过图的遍历算法来解决。说明 站点1和站点2直接有连接,站点3和其他的都没连接,所以开始至少需要给两个站点发送广播。现在要发一条广播,问初始最少给几个广播站发送,才能保证所有的广播站都收到消息。构建邻接矩阵: 根据输入的二维数组构建邻接矩阵,表示各个广播站之间的连接情况。计数: 统计遍历过程中标记的连通分量个数,即为最少需要发送广播站的数量。比如:110,110,001。原创 2024-06-05 13:04:41 · 3 阅读 · 0 评论 -
(D卷,200分)- 二叉树计算(Java & JS & Python & C)
左子树表示该节点左侧叶子节点为根节点的一颗新树;右子树表示该节点右侧叶子节点为根节点的一颗新树。请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。2行整数,第1行表示二叉树的中序遍历,第2行表示二叉树的前序遍历,以空格分割。针对每个节点,计算其左子树和右子树的节点值之和,并将该和作为当前节点的新值。最终得到的二叉树即为求和树,其中序遍历结果即为输出结果。根据输入的中序遍历和前序遍历结果,可以构建原始二叉树。输出 0 3 0 7 0 2 0。原创 2024-06-05 13:03:11 · 3 阅读 · 0 评论 -
(D卷,200分)- 二叉树的广度优先遍历(Java & JS & Python & C)
现有两组字母,分别表示后序遍历(左孩子->右孩子->父节点)和中序遍历(左孩子->父节点->右孩子)的结果,请你输出层序遍历的结果。每个输入文件一行,第一个字符串表示后序遍历结果,第二个字符串表示中序遍历结果。层序遍历:利用队列进行层序遍历,从根节点开始,每次将当前节点的左右子节点入队,并依次出队输出节点值。中序遍历(左孩子->父节点->右孩子):节点的访问顺序是先左孩子,然后是父节点,最后是右孩子。后序遍历(左孩子->右孩子->父节点):节点的访问顺序是从左孩子到右孩子,最后才是父节点。原创 2024-06-05 12:58:55 · 3 阅读 · 0 评论 -
(D卷,200分)- 叠积木(Java & JS & Python & C)
我们可以通过计算每种长度的积木的数量,然后找到可以拼接成同一长度的积木对。题目要求根据给定的积木长度,将其叠成一面墙,要求墙的每层长度相同。说明 可以每层都是长度3和6的积木拼接起来,这样每层的长度为9,层数为2;也可以其中两层直接用长度6的积木,两个长度3的积木拼接为一层,这样层数为3,故输出3。小橙想把这堆积木叠成一面墙,墙的每层可以放一个积木,也可以将两个积木拼接起来,要求每层的长度相同。积木的数量和长度都不超过5000。输出一个数字,为墙的最大层数,如果无法按要求叠成每层长度一致的墙,则输出-1。原创 2024-06-05 12:57:15 · 3 阅读 · 0 评论 -
(D卷,200分)- 电脑病毒感染(Java & JS & Python & C)
这是一个关于计算感染时间的问题,题目描述了一个局域网内有多台电脑,它们之间通过网络连接。每台电脑上的病毒感染相邻电脑所需的时间不同。现在需要求出一台电脑被感染后,要使得整个网络内的所有电脑都被感染,最少需要多长时间。输入包括局域网内电脑的个数N,以及总共多少条网络连接,接下来是每条连接的信息,最后是病毒最开始所在的电脑号。相连接的电脑距离不一样,所以感染时间不一样,感染时间用 t 表示。如图:path[i] = {i, j, t} 表示:电脑 i->j,电脑 i 上的病毒感染 j,需要时间 t。原创 2024-06-05 12:55:24 · 9 阅读 · 0 评论 -
(D卷,200分)- 导师请吃火锅(Java & JS & Python)
由于菜品的烹饪时间和你的手速都是已知的,我们可以将菜品按照烹饪完成时间从小到大进行排序,然后尽可能多地选择烹饪完成时间早于你可以再次捞取的菜品。这是一个火锅吃菜的问题,要求设计最合理的策略,以最多地吃到刚好合适的菜。你希望吃到最多的刚好合适的菜,但你的手速不够快,用m代表手速,每次下手捞菜后至少要过m秒才能再捞(每次只能捞一个)。第一行两个整数n,m,其中n代表往锅里下的菜的个数,m代表手速。输出一个整数代表用最合理的策略,最多能吃到刚好合适的菜的数量。那么用最合理的策略,最多能吃到多少刚好合适的菜?原创 2024-06-05 12:53:24 · 3 阅读 · 0 评论 -
(D卷,200分)- 打印任务排序(Java & JS & Python & C)
打印机每次从队列头部取出第一个任务A,然后检查队列中是否有比A优先级更高的任务,如果有,则将任务A放到队列尾部,否则就执行任务A的打印。然后检查队列余下任务中有没有比A优先级更高的任务,如果有比A优先级高的任务,则将任务A放到队列尾部,否则就执行任务A的打印。接着队列头部任务优先级为3,队列中还有优先级为5的任务,优先级3任务被移到队列尾部;输入一行,为每个任务的优先级,优先级之间用逗号隔开,优先级取值范围是1~9。如果存在比A优先级更高的任务,则将任务A放到队列尾部,否则执行任务A的打印。原创 2024-06-05 12:50:36 · 3 阅读 · 0 评论 -
(D卷,200分)- 出错的或电路(Java & JS & Python & C)
某生产门电路的厂商发现某一批次的或门电路不稳定,具体现象为计算两个二进制数的或操作时,第一个二进制数中某两个比特位会出现交换,交换的比特位置是随机的,但只交换这两个位,其他位不变。问题背景: 某批次的或门电路存在不稳定性,即当计算两个二进制数的或操作时,第一个二进制数中的某两个比特位会随机交换,而其他比特位保持不变。2、交换第1个比特和第3个比特,第一个输入数变为010,计算结果为110,计算结果不变。第二行有一个长为N的二进制数,表示与电路的第一个输入数,即会发生比特交换的输入数。原创 2024-06-05 12:47:40 · 2 阅读 · 0 评论 -
(D卷,200分)- 查找一个有向网络的头节点和尾节点(Java & JS & Python & C)
首节点即入度为0的节点,尾节点即出度为0的节点。题目输入包括键值对数量N,表示有N对起始节点和终止节点的数据。给定一个有向图,图中可能包含有环,图使用二维矩阵表示,每一行的第一列表示起始节点,第二列表示终止节点,如 [0, 1] 表示从 0 到 1 的路径。求这个数据的首节点与尾节点,题目给的用例会是一个首节点,但可能存在多个尾节点。同时图中可能含有环。题目要求输出头节点和尾节点,如果有多个尾节点,则按照从大到小的顺序输出。如果有多个尾节点,按从大到小的顺序输出。说明:入度为0是首节点,出度为0是尾节点。原创 2024-06-05 12:45:49 · 7 阅读 · 0 评论 -
(D卷,200分)- 比较两个版本号的大小(Java & JS & Python)
题目要求输入两个版本号version1和version2,每个版本号由多个子版本号组成,子版本号之间用.隔开。输入两个版本号 version1 和 version2,每个版本号由多个子版本号组成。子版本号之间由 “.” 隔开,由大小写字母、数字组成,并且至少有一个字符。子版本号前面的0不参与比较,比如 001 和 1 是相等的。子版本号由大小写字母和数字组成,并且至少有一个字符。如果version1小于version2,返回-1。忽略子版本号前面的0,即001和1是相等的。如果两者相等,返回0。原创 2024-06-05 12:41:21 · 3 阅读 · 0 评论 -
(D卷,200分)- Wonderland(Java & JS & Python & C)
Wonderland目前有4种售票方式,分别为一日票(1天)、三日票(3天)、周票(7天)和月票(30天)。说明 根据售票价格数组和游玩日期数组给出的信息,发现每次去玩的时候买一张一日票是最省钱的,所以小王会卖8张一日票,每张5元,最低花费是40元。游乐园提供四种售票方式,分别对应不同天数的游玩权限:一日票(1天)、三日票(3天)、周票(7天)和月票(30天)。每种售票方式的价格由costs数组给出,数组长度为4,按照一日票、三日票、周票、月票的顺序排列。小王计划地游玩日期将由一个数组给出。原创 2024-06-04 18:45:09 · 9 阅读 · 0 评论 -
(D卷,200分)- TLV解析 Ⅱ(Java & JS & Python)
(2)结果数组中tag值已知,需要填充每个tag对应数据的length和valueOffset值(valueOffset为value在原消息包中的起始偏移量(从0开始,以字节为单位)),即将消息包中的tag与结果数组中的tag进行匹配(可能存在匹配失败的情况,若结果数组中的tag在消息包中找不到,则length和valueOffset都为0)两端通过TLV格式的报文来通信,现在收到对端的一个TLV格式的消息包,要求生成匹配后的(tag, length, valueOffset)列表。原创 2024-06-04 18:40:52 · 6 阅读 · 0 评论 -
(D卷,200分)- N进制减法(Java & JS & Python)
有效的字符包括0-9以及小写字母a-z,字符串有效字符个数最大为100个字符,另外还有结尾的\0。接着,读取被减数和减数两个字符串,并验证它们是否符合N进制数的规则,特别是非0前导的要求。需要对输入的两个字符串按照给定的N进制进行减法操作,输出正负符号和表示结果的字符串。按8进制,检查到减数不符合非0前导的要求,返回结果为-1,没有其他结果内容。其一为减法计算的结果,-1表示出错,0表示结果为整数,1表示结果为负数。输入的被减数和减数,除了单独的0以外,不能是以0开头的字符串。其二为表示结果的字符串。原创 2024-06-04 18:35:04 · 8 阅读 · 0 评论 -
(D卷,200分)- 5G网络建设(Java & Python & C)
现需要在某城市进行5G网络建设,已经选取N个地点设置5G基站,编号固定为1到N,接下来需要各个基站之间使用光纤进行连接以确保基站能互联互通,不同基站之间假设光纤的成本各不相同,且有些节点之间已经存在光纤相连。接下来的M行,每行包含四个数据:两个基站的编号X和Y、在X和Y之间架设光纤的成本Z,以及一个标志P表示是否已存在光纤连接(0表示未连接,1表示已连接)。注意:基站的联通具有传递性,比如基站A与基站B架设了光纤,基站B与基站C也架设了光纤,则基站A与基站C视为可以互相联通。原创 2024-06-04 18:30:59 · 6 阅读 · 0 评论 -
(D卷,100分)- 最长子字符串的长度(一)(Java & JS & Python & C)
具体地,我们遍历字符串两次,第一次计算前缀异或和('o’记作1,非’o’记作0),第二次利用前缀异或和判断任意子字符串中’o’的个数是否为偶数。‘o’字符的偶数次出现:我们需要找到的是’o’字符出现次数为偶数的最长子字符串。由于’o’字符出现偶数次,那么子字符串中’o’字符的个数要么为0(没有’o’),要么为2的倍数(有偶数个’o’)。说明 最长子字符串"oxdolxl",由于是首尾连接一起的,所以最后一个’x’和开头的’l’是连接在一起的,此字符串包含2个’o’输入是一个小写字母组成的字符串。原创 2024-06-03 16:02:20 · 55 阅读 · 3 评论 -
(D卷,100分)- 最长的指定瑕疵度的元音子串(Java & JS & Python & C)
开头和结尾都是元音字母(aeiouAEIOU)的字符串为元音字符串,其中混杂的非元音字母数量为其瑕疵度。给定一个字符串,请找出指定瑕疵度的最长元音字符子串,并输出其长度,如果找不到满足条件的元音字符子串,输出0。题目要求在给定的字符串中,找到满足特定瑕疵度(flaw)的最长元音字符子串,并输出其长度。遍历字符串的所有子串,检查每个子串是否满足元音字符串的条件,并计算其瑕疵度。子串:字符串中任意个连续的字符组成的子序列称为该字符串的子串。输出为一个整数,代表满足条件的元音字符子串的长度。原创 2024-06-03 15:58:03 · 10 阅读 · 0 评论 -
(D卷,100分)- 最富裕的小家庭(Java & JS & Python & C)
在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭。第二行为 N 个空格分隔的数,表示编号 1~N 的成员的财富值。接下来 N -1 行,每行两个空格分隔的整数(N1, N2),表示 N1 是 N2 的父节点。接下来N-1行,每行表示一条树中的父子关系,即一个节点是另一个节点的父节点。给定一个家庭树结构,每个节点代表一个家庭成员,并有一个对应的财富值。遍历树的所有节点,计算每个“小家庭”的财富值之和。第二行是N个成员的财富值,按编号顺序给出。原创 2024-06-03 15:52:59 · 1453 阅读 · 0 评论 -
(D卷,100分)- 最多购买宝石数目(Java & JS & Python & C)
之后 n 行分别表示从第0个到第n-1个宝石的价格,即 gems[0] 到 gems[n-1] 的价格,类型为int,取值范围:(0,1000]。例如客户最大购买宝石个数为m,购买的宝石编号必须为:gems[i],gems[i+1],…购买的宝石必须是连续的,即如果购买从第i个开始的m个宝石,则编号为gems[i]到gems[i+m-1]。说明 gems = [1, 1, 1, 1, 1, 1, 1, 1, 1], value = 10。宝石的总数量为n,宝石的价格数组为gems,长度为n。原创 2024-05-31 15:00:22 · 14 阅读 · 0 评论 -
(D卷,100分)- 最大时间(Java & JS & Python)
输出要求:需要利用这六个数字(每个数字只能使用一次)来组成一个24进制的时间格式,即HH:MM:SS,其中HH表示小时(取值范围00-23),MM表示分钟(取值范围00-59),SS表示秒(取值范围00-59)。给定一个数组,里面有 6 个整数,求这个数组能够表示的最大 24 进制的时间是多少,输出这个时间,无法表示输出 invalid。无效情况:如果无法组成合法的时间格式(比如小时数超过23,分钟或秒数超过59,或者使用了重复的数字),则输出"invalid"。输入为一个整数数组,数组内有六个整数。原创 2024-05-31 14:56:40 · 12 阅读 · 0 评论 -
(D卷,100分)- 最大括号深度(Java & JS & Python)
括号匹配规则:字符串中的括号必须按照正确的顺序闭合,即左括号 ‘(’、‘{’、‘[’ 必须在其对应的右括号 ‘)’、‘}’、‘]’ 之前出现,并且数量要相等。无效字符串:如果字符串中任一类型的左右括号数量不相等,或者存在未按正确顺序闭合的括号,则称该字符串为无效字符串。嵌套深度:最大嵌套深度是指从左到右遍历字符串时,任意位置上的括号所嵌套的最大层数。现有一字符串仅由 ‘(‘,’)’,‘{‘,’}’,’[‘,’]’六种括号组成。一个只包括 ‘(‘,’)’,‘{‘,’}’,’[‘,’]’的字符串。原创 2024-05-31 14:52:25 · 11 阅读 · 0 评论 -
(D卷,100分)- 最大矩阵和(Java & JS & Python & C)
输入的第一行包含2个整数n, m(1原创 2024-05-31 14:48:57 · 10 阅读 · 0 评论