819. 最常见的单词

Posted 心脏dance

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了819. 最常见的单词相关的知识,希望对你有一定的参考价值。

题目链接:力扣

思路:题目不难,需要注意下细节。一定不要只用空格作为分隔符,然后每个单词删除不是字母的字符,有的样例是这样的“a,b,c”,这是三个字符,但是没有空格,所以就需要用题目给的标点符号和空格进行分隔,“it's” 题目认为这也是两个单词,所以就直接用题目给的标点符号和空格分隔即可。

分割完成后,可能存在空字符串,所以需要过滤出length>0的字符,最后进行逻辑处理即可(逻辑处理过程看代码,简单题不做说明了)

上代码:

class Solution 
    fun mostCommonWord(paragraph: String, banned: Array<String>): String 
        val wordMap = HashMap<String, Int>()
        val temp = paragraph.split(' ', '!', '?', ',', ';', '.', '\\'').filter  it.isNotEmpty() 
        temp.forEach  tmpStr ->
            val str = tmpStr.toLowerCase()
            wordMap[str] = (wordMap[str] ?: 0) + 1
        
        var result = ""
        val wordSortMap = wordMap.entries.sortedByDescending  it.value .associateBy( it.key ,  it.value )
        run loop@
            wordSortMap.forEach  (str, _) ->
                if (!banned.contains(str)) 
                    result = str
                    return@loop
                
            
        
        return result
    

 

以上是关于819. 最常见的单词的主要内容,如果未能解决你的问题,请参考以下文章

819. 最常见的单词

LeetCode 819 最常见的单词[Map 模拟] HERODING的LeetCode之路

[LeetCode] 819. Most Common Word

Java n种方式分割统计单词

LintCode 819. 单词排序

使用split来解决“最常见的单词”问题