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. 最常见的单词的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 819 最常见的单词[Map 模拟] HERODING的LeetCode之路