• 1369. 最频繁单词


    1369. 最频繁单词

    中文English

    给定一个段落和一组限定词,返回最频繁的非限定单词。已知至少有一个单词是非限定的,并且答案唯一。
    限定词都是以小写字母给出,段落中的单词大小写不敏感。结果请返回小写字母。

    样例

    样例1

    输入: paragraph = "Bob hit a ball, the hit BALL flew far after it was hit." 和 banned = ["hit"]
    输出: "ball"
    解释:
    "hit" 出现3次但是限定词。
    "ball" 出现两次,是最频繁的非限定词。
    注意段落中大小写不敏感。
    标点符号请忽略 (即使紧挨单词,例如"ball,"), 
    

    样例2

    输入: paragraph = "a a a b b c c d" 和 banned = ["a","b"]
    输出: "c"
    解释:
    "a"和"b"都是限定词
    "c"出现了2次,而"d"只出现过一次
    所以输出"c"
    

    注意事项

    • 1 <= paragraph.length <= 1000.
    • 1 <= banned.length <= 100.
    • 1 <= banned[i].length <= 10.
    • 答案唯一,并且返回小写(即使以大写字母出现在段落中就,或是一个专有名词.)
    • 段落仅由字母、空格、标点!?',;.组成。
    • 不同的单词会被空格隔开.
    • 没有连字符或者连字单词.
    • 单词仅由小写字母组成,没有所有格或别的标点符号。
    class Solution:
        """
        @param paragraph: 
        @param banned: 
        @return: nothing
        """
        '''
        大致思路:
        1.初始化字典dic,循环paragraph,如果出现不是字符的,则说明是一个完整的单词,同时需要判断是否在banned里面,然后需要加到字典里面,进行计数.
        2.循环字典,判断哪个v是最大的,则返回对应的k即可。
        '''
        def mostCommonWord(self, paragraph, banned):
            dic = {}
            c = ''
            for i in paragraph + ' ':
                if i.isalpha() == True:
                    c += i
                else:
                    if c.lower() not in banned and c != '':
                        dic[c.lower()] = dic.get(c.lower(),0) + 1
                    c = ''
            m = 0
            res = ''
            for k,v in dic.items():
                if v>m:
                    res = k
                    m = v
            return res
  • 相关阅读:
    函数
    vue中v-for循环如何将变量带入class的属性名中
    代码规范 前端导航
    2019.8.5 mysql 删除 更新
    2019.8.1
    2019.7.31 Xshell简单学习
    日常使用知识点
    FormData实现文件多次添加累加上传和选择删除
    上传图片
    验证码
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12741725.html
Copyright © 2020-2023  润新知