题目来源
题目描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/25b50933330b62ec43f92b613643c6dc.png)
题目解析
class Solution {
public:
string mostCommonWord(string paragraph, vector<string>& banned) {
std::set<std::string> bans;
for(auto &iter : banned){
std::string tmp;
for(auto & ch : iter){
tmp += std::tolower(ch);
}
bans.insert(tmp);
}
char ch;
std::map<std::string, int> mapper;
std::string tmp, ans;
int i = 0, left = 0, right = 0, cnt = 0;
while (i < paragraph.size()){
left = i;
while (left < paragraph.size() && !isalpha(paragraph[left])){
left++;
}
tmp = "";
right = left;
while (right < paragraph.size() && isalpha(paragraph[right])){
tmp += std::tolower(paragraph[right]);
right++;
}
if(!tmp.empty()){
if(!bans.count(tmp)){
++mapper[tmp];
if(mapper[tmp] > cnt){
cnt = mapper[tmp];
ans = tmp;
}
}
}
i = right;
}
return ans;
}
};
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5079e30094e8044c111e378ab65a5da7.png)