字符串819. 最常见的单词

Posted ocpc

tags:

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

题目:

技术图片

 

 

 

解答:

先用transform函数将字符串转为小写,再遍历字符串搜索单词,建立map 对应的key-value关系,key是单词,value是单词出现次数。

再遍历banned数组,对这些ban的单词出现次数设为INT_MIN,再创建一个迭代器遍历map,找到最大value对应的单词即可。

 1 class Solution {
 2 public:
 3      string mostCommonWord(string paragraph, vector<string>& banned) 
 4      {
 5         transform(paragraph.begin(),paragraph.end(),paragraph.begin(),::tolower);
 6 
 7         string word="";
 8         map<string,int> m;
 9         for(int i=0;i<paragraph.size();i++)
10         {
11             if(paragraph[i]>=a&&paragraph[i]<=z)
12             {
13                 word+=paragraph[i];
14                 continue;
15             }
16             if(word.size()>0)
17             {
18                 m[word]++;
19                 word="";
20             }           
21         }
22         if(word.size()>0)
23         {
24             m[word]++;
25         }
26         map<string,int>::iterator it;
27         for(int i=0;i<banned.size();i++)
28         {
29             m[banned[i]]=INT_MIN;
30         }
31         string ans_key="";
32         int ans_value=0;
33         for(it=m.begin();it!=m.end();it++)
34         {
35             if(it->second>ans_value)
36             {
37                 ans_value=it->second;
38                 ans_key=it->first;
39             }
40         }
41         return ans_key;
42     }
43 
44 };

 

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

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

LeetCode 819. 最常见的单词

[LeetCode] 819. Most Common Word

Java n种方式分割统计单词

LintCode 819. 单词排序

用排除法计算 SQL 表中最常见的单词