LeetCode 819 最常见的单词[Map 模拟] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 819 最常见的单词[Map 模拟] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
一道非常简单的模拟题,中间有比较多的处理细节,包括逗号等标点符号的处理,所以就不直接用python字符串分割了。首先把ban的word放入map中用-1来表示,然后一个字母一个字母遍历,每次遍历出一个单词(都转换为小写)后判断是否是ban的再放入map中,i <= len是为了将最后一个word也能在for循环中判断,在更新map的过程中统计最大数量的word,代码如下:
class Solution
public:
string mostCommonWord(string paragraph, vector<string>& banned)
unordered_map<string, int> mp;
// 标记禁用词
for(auto& ban : banned)
mp[ban] = -1;
int len = paragraph.size();
string word, target;
int maxFre = 0;
for(int i = 0; i <= len; i ++)
if(i < len && isalpha(paragraph[i]))
word += tolower(paragraph[i]);
else if(word.size() > 0)
if(mp[word] != -1)
mp[word] ++;
if(mp[word] > maxFre)
maxFre = mp[word];
target = word;
word = "";
return target;
;
以上是关于LeetCode 819 最常见的单词[Map 模拟] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章