码迷,mamicode.com
首页 > 其他好文 > 详细

找出词频最高的字母

时间:2016-05-11 16:31:09      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

规则

  1. 给你一个其中包含不同的英文字母和标点符号的文本,你要找到其中出现最多的字母,返回的字母必须是小写形式,当检查最想要的字母时,不区分大小写,所以在你的搜索中 "A" == "a"。 请确保你不计算标点符号,数字和空格,只计算字母;
  2. 如果你找到 两个或两个以上的具有相同的频率的字母, 返回那个先出现在字母表中的字母。 例如“one”包含“o”,“n”,“e”每个字母一次,因此我们选择“e”。

测试数据

Hello World!
How do you do?
One
Oops!
AAaooo!!!!
abe

目标结果

l
o
e
o
a
a

解题思路

先删除非字母的字符并将所有字母转化成小写,再统计每个字母的词频,然后根据最大词频找到对应的字母,结果可能有多个,没关系,排下序就好,最后将排序后的列表的第一个值输出即可。

脚本

import re
 
def checkio(text):
    text = re.sub(r[^a-zA-Z], ‘‘, text.lower())
    mydict = {}
    for letter in set(text):
        mydict[letter] = text.count(letter)
    mylist = []
    for each_item in mydict.keys():
        if mydict[each_item] == max(mydict.values()):
            mylist.append(each_item)
    mylist.sort()
    return mylist[0]

text = ‘‘‘Hello World!
How do you do?
One
Oops!
AAaooo!!!!
abe‘‘‘

for line in text.split(\n):
    print checkio(line)

 

找出词频最高的字母

标签:

原文地址:http://www.cnblogs.com/yestreenstars/p/5482284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!