我试图在单词列表中找到最常用的字母。我在算法上苦苦挣扎,因为我只需要在跳过重复项时计算一个单词中的字母频率,所以我需要帮助找到一种方法来计算整个列表中字母的频率,每个单词只出现一次,忽略第二次出现。
例如,如果我有:
words = ["tree", "bone", "indigo", "developer"]
频率将是:
letters={a:0, b:1, c:0, d:2, e:3, f:0, g:1, h:0, i:1, j:0, k:0, l:1, m:0, n:2, o:3, p:1, q:0, r:2, s:0, t:1, u:0, v:1, w:0, x:0, y:0, z:0}
正如您从字母字典中看到的:'e' 是 3 而不是 5,因为如果 'e' 在同一个单词中重复多次,它应该被忽略。
这是我想出的算法,它是用 Python 实现的:
for word in words:
count=0;
for letter in word:
if(letter.isalpha()):
if((letters[letter.lower()] > 0 && count == 0) ||
(letters[letter.lower()] == 0 && count == 0)):
letters[letter.lower()]+=1
count=1
elif(letters[letter.lower()]==0 && count==1):
letters[letter.lower()]+=1
但它仍然需要工作,我不能考虑其他任何事情,我很高兴任何能帮助我考虑可行解决方案的人。
慕运维8079593
智慧大石
慕森王
相关分类