文档特征提取
2026 华为OD机试真题 4月22日华为OD上机新系统考试真题 100 分题型
点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解
题目描述
一篇文档由多个文本片段组成(这里假定每个片段由小写英文字母组成,不包含其他内容),需要针对该文档的多个片段进行特征提取,提取方法如下:
1、特征提取处理时首先找出所有片段中都包含的字母,也就是该字母在所有片段中都至少出现过一次。
2、如果某个字母在多个片段中都出现过,则计算字母在所有片段中出现的最小次数,如果最小次数为,则特征中包含个该字母,如果最少次数为,则特征中包含个该字母,以此类推。
3、最终输出的文本特征是具备上诉条件所有字母的集合,且字母按照从小到大排序。
4、如果所有的字母都不符合该条件,则提取特征的结果为空。
补充说明
用例中字符串(即片段)的总数小于个
示例1
输入
paper parent parade
输出
aepr
说明
“p”, “a”, “e”, “r” 在每个字符串中都至少出现一次.
每个字母在各字符串中都至少出现1次,所以结果中每个字母出现一次
示例2
输入
hello hollow halloween
输出
hllo
说明
“h” 在每个字符串中都至少出现11次 → 取最小值11次
“l” 在三个字符串中分别出现22次、22次、22次 → 最小值22次
“o” 在三个字符串中分别出现11次、22次、11次 → 最小值11次
所以结果为hllo
示例3
输入
abc def ghi
输出
""
说明
没有字母在所有三个字符串中都出现
解题思路
核心思想
- 统计字符频率:对每个输入的文本片段,统计其中每个小写字母出现的次数。
- 寻找共有字母:遍历所有片段,找出在所有片段中都出现过的字母。
- 取最小值:对于每一个共有字母,计算它在所有片段中出现次数的最小值 。
- 构建结果:将每个共有字母重复 次,并按字母表顺序(从小到大)拼接成最终的特征字符串。
- 边界处理:如果没有共有字母,则输出空字符串
""。
复杂度分析
- 时间复杂度:,其中 是片段数量, 是片段的最大长度。统计每个片段的字符频率需要 ,遍历 26 个字母并查找最小值需要 。
- 空间复杂度:,用于存储每个片段的字符频率统计。