在单词列表中计算字母频率,不包括同一单词中的重复字母。
在单词列表中计算字母频率,不包括同一单词中的重复字母。
我正在尝试找到一组单词中出现频率最高的字母。我在算法上遇到了困难,因为我需要跳过重复的字母,只计算每个单词中字母的频率一次,因此我需要帮助找到一种方法,只计算整个列表中每个单词中字母的频率一次,忽略第二次出现的情况。
例如,如果我有:
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
但它仍然需要改进,我想不出其他办法,我很愿意有人能帮我想出一个可行的解决方案。