当前位置: 首页 > 面试经验 >

【华为OD机试2023】知识图谱新词挖掘1(Python)

优质
小牛编辑
93浏览
2023-03-28

【华为OD机试2023】知识图谱新词挖掘1(Python)

题目描述:

小华负责公司知识图谱产品,现在要通过新词挖掘完善知识图谱。

新词挖掘:给出一个待挖掘文本内容字符串Content和一个词的字符串word,找到content中所有word的新词。

新词:使用词word的字符排列形成的字符串。

请帮小华实现新词挖掘,返回发现的新词的数量。

输入描述:

第一行输入为待挖掘的文本内容content;

第二行输入为词word;

输出描述:

在中找到的所有word的新词的数量。

补充说明:

0<=content的长度<=10000000;

1=<word的长度<=2000

示例1

输入:

qweebaewqd

qwe

输出:

2

说明:

起始索引等于 0 的子串是 "qwe", 它是 word的新词。

起始索引等于 6 的子串是 "ewq", 它是 word 的新词。

示例2

输入:

abab

ab

输出:

3

说明:

起始索引等于 0 的子串是 "ab", 它是 word的新词。

起始索引等于 1 的子串是 "ba", 它是 word的新词。

起始索引等于 2 的子串是 "ab", 它是 word的新词。

解题思路:

本来想用set()函数把word去重,再一个个遍历计算.count()的,但发现不用这么麻烦,直接切片字符串,然后对字符串进行排序,如果一致,那么说明两个字符串的字母完全一样,符合新词的定义


content=input()
word=input()
l=len(word)
k=len(content)
count=0
for i in range(0,k-l+1):
wajue=content[i:i+l]
if sorted(word)==sorted(wajue):
count+=1
print(count)

#华为机试,emo了#
 类似资料: