作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从文本输入中找出最常见的词,不包括给定词的列表。如果有多个最大字数,则全部显示。
我的方法是 21/24 个测试用例,我似乎想不出我遗漏的 3 个测试用例。
我正在添加我现在拥有的代码,这对我来说是高效的。我现在不想用另一种方式来实现它(尽管建议是最受欢迎的),我只是想就我遗漏的可能测试用例征询您的意见。
vector<string> mostCommonWord(string paragraph, vector<string>& banned) {
unordered_map<string, int>m;
for(int i = 0; i < paragraph.size();){
string s = "";
while(i < paragraph.size() && isalpha(paragraph[i])) s.push_back(tolower(paragraph[i++])); // go through till you find one word completely
while(i < paragraph.size() && !isalpha(paragraph[i])) i++; // avoid all the white spaces and other characters
m[s]++; // include the word found and increment its count
}
for(auto x: banned) m[x] = 0; // make the count of all the banned words to be 0
vector<string> result;
string res = "";
int count = INT_MIN;
// find the maximum count
for(auto x: m)
if(x.second > count) count = x.second;
// we might have the case where all the words were in banned words, which would result the count == -1, so return an empty vector in this case
if(count <= 0) return result;
// add the words corresponding to that to the final vector<string>
for(auto x: m)
if(x.second == count) result.push_back(x.first);
return result;
}
它适用于我能想到的所有场景,但未能通过 3 个测试用例。我没有访问这些测试用例的权限,只是想讨论它可能是什么!
最佳答案
paragraph
以空格或非字母字符开头,您将在映射中插入空字符串:m[""] = 1
。关于c++ - 使用 unordered_map 方法在 C++ 中查找最(多个)常用词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55388903/
我想从字符串中获取常用单词。 我发现了这个方法: http://jsbin.com/nufimudivu/1/edit for(var i = 0; i } } http://jsbin.co
从文本输入中找出最常见的词,不包括给定词的列表。如果有多个最大字数,则全部显示。 我的方法是 21/24 个测试用例,我似乎想不出我遗漏的 3 个测试用例。 我正在添加我现在拥有的代码,这对我来说是高
我是一名优秀的程序员,十分优秀!