通过率 53% · 提交 130 · 通过 69
在奇幻王国中,魔法师小慕负责管理一片由魔法水晶组成的“内存之域”。这片区域被划分为若干个相同大小的魔法水晶块。每块水晶块要么空闲,等待被赋能,要么已被其他魔法师占用。王国的魔法系统用一串字符 记录每块水晶块的状态,其中:'.' 表示该水晶块是空闲的;'x' 表示该水晶块已被占用(任意魔法符文,统一表示为 x);小慕掌握释放魔法的能力,他最多可以释放其中 个被占用的魔法水晶块,使其变为空闲状态(即 'x' 变成 '.')。现在他希望通过最多释放 cnt 块水晶,获得一段的最大长度的魔法水晶块区域。你的任务是帮助小慕计算,在最优释放方案下,最多可以获得多少块连续空闲的水晶。
这类题属于华为可信认证科目一方向中「双指针 / 可信」方向的高频题型,通常考察对「双指针 / 可信」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
输入包含两行:
第一行一个字符串 memory,表示初始的水晶块状态,仅包含字符 '.' 和 'x',字符串长度满足 1 <= len(memory) <= 10^5。
第二行一个整数 cnt,表示最多可以释放的水晶块数,满足 0 <= cnt <= len(memory)。
输出一个整数,表示通过最多释放 cnt 块被占用的水晶后,可以获得的最长连续空闲魔法水晶块数量。
示例 1
输入示例
..x..x..xx... 2
输出示例
8
对字符串 memory = "..x..x..xx...":
memory[2] 与 memory[5] 从 'x' 变为 '.'),
则得到从 memory[0] 到 memory[7] 的连续空闲区域,总长度为 8。8。因此输出为 8。
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有