解题思路:
(1)首先遍历字符串,取每一个单词,并将其转化为小写字母
(2)判断是否在停用词中,不在将其作为map的key,value表示该单词出现的次数
(3)边遍历,边记录出现次数最多的单词,注意根据题目要求,只有一个最大值
class Solution {
public:
string mostCommonWord(string s, vector<string>& banned) {
int i=0,max=0;
int start=0,end=0;
string temp,str;
unordered_map<string,int> mp;
while(i<s.length()) {
if(isalpha(s[i])) {
start = i;
while(i<s.length()&&isalpha(s[i])) {
s[i] = tolower(s[i]);
i++;
}
end = i;
temp = s.substr(start,end-start);
if(find(banned.begin(),banned.end(),temp)==banned.end()) {
mp[temp]++;
if(mp[temp]>max) {
str = temp;
max = mp[temp];
}
}
} else i++;
}
return str;
}
};