zoukankan      html  css  js  c++  java
  • 练习题——找出词频最高的字母

    题目

    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('
    '):
        print checkio(line)

    如果您觉得我的文章对您有帮助并想鼓励我继续原创,请扫描下方二维码进行打赏!

    谢谢!

  • 相关阅读:
    Beta冲刺——集合随笔
    Beta冲刺——用户调查报告
    Beta冲刺——总结
    Beta冲刺——代码规范、冲刺任务与计划
    Beta冲刺——Day 7
    Beta冲刺——Day 6
    Beta冲刺——Day 5
    Beta冲刺——Day 4
    Beta冲刺——Day3
    beta冲刺汇总
  • 原文地址:https://www.cnblogs.com/yestreenstars/p/5482284.html
Copyright © 2011-2022 走看看