标签:min nsf ret width span continue int tin amp
题目:
解答:
先用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‘&¶graph[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 };
标签:min nsf ret width span continue int tin amp
原文地址:https://www.cnblogs.com/ocpc/p/12823536.html