5.20华为OD机试真题 新系统 - 小学英语老师批改作文 (JavaPyCC++JsGo)
小学英语老师批改作文2026 华为OD机试真题 5月20日华为OD上机新系统考试真题 100 分题型点击查看华为 OD 机试真题完整目录2026最新华为OD机试新系统卷 双机位C卷 真题题库目录全覆盖题库 逐点算法考点详解题目描述你是一名小学英语老师正在批改学生的英语作文。由于学生在书写单词时常常会出现一些小问题比如多余的空格作文批改过程中需要纠正问题包括前后多余空格去除中间重复的空格应该删除多余空格单词间最多只保留一个空格。 为了简化查找过程重复字符比较忽略字符大小写am等于Am、AM和aM。2026 华为OD机试真题 5月20日华为OD上机新系统考试真题 100 分题型输入描述输入一个仅包含 ASCII 字符的文本字符串 story输出描述请你找出批改后的作文中最长的不包含重复字符的子串长度。约束0≤story.length≤1000story 仅包含 ASCII 字符0-127。示例1输入Hello World!输出7说明最长子串为World!长度为 7。示例2输入hi, jIn输出5说明先对空格和大小写做处理输入串等价为Hi, Jin最长子串是, Jin长度为5解题思路本题分两步处理第一步作文文本预处理批改操作- 去除字符串首尾的所有空格 - 将中间连续出现的多个空格压缩为单个空格即单词间最多保留一个空格 - 这一步模拟了作文批改过程中对空格格式的规范化操作第二步滑动窗口求解最长无重复子串- 预处理后的文本中利用滑动窗口技术维护一个无重复字符的子串 - 右指针right不断右移遍历每个字符 - 使用哈希表记录每个字符小写最近一次出现的下标 - 当发现当前字符已在窗口内出现过时记录下标 ≥ 窗口左边界将左指针left直接跳到重复字符的下一个位置从而保证窗口内无重复字符 - 窗口大小right - left 1即为当前无重复子串长度用best记录最大值即为答案复杂度分析时间复杂度: O(n)其中 n 为字符串长度每个字符最多被左右指针各访问一次空间复杂度: O(min(m, 128))其中 m 为字符集大小ASCII最多128种字符最坏情况下哈希表存