我有一个字符串列表,如:
beel beez baee beae
我需要找到所有单词(如果存在的话)中共同的单词(或其拼字法)。 在这种情况下,神奇的词语是:
bee
或其字谜(例如:ebe,eeb)
我的解决办法是:
我比较了他们之间的所有词语:
def es(list_str):
for i in range(len(list_str)):
a = list_str[i]
for j in range(i+1, len(list_str)):
b = list_str[j]
然后我搜索这个神奇的词:
def generator(a,b):
res = []
a = list(a)
b = list(b)
for i in a:
if i in b:
res.append(i)
b.remove(i)
return sorted(res)
实际上我的代码很好用,我找到了我需要的。问题是,对于很长的字符串列表,它的效率很低
有人知道如何找到这个词吗?我不能使用专门的图书馆,这是大学的家庭作业
一种方法是使用集合找到所有单词的公共字母,然后计算单词中每个字母的最小出现次数:
使用
collections.Counter
来避免重复计算同一单词的稍微高效的版本:如果你只是在寻找每个单词中出现的字母列表,顺序无关紧要,那么数一数每个单词中的字母,找出出现次数最少的单词中出现的次数,然后用这些字母创建一些单词
相关问题 更多 >
编程相关推荐