【网易2017内推笔试】小易记单词
2017-03-26 11:37
274 查看
题目:小易参与了一个记单词的小游戏。游戏开始系统提供了m个不同的单词,小易记忆一段时间之后需要在纸上写出他记住的单词。小易一共写出了n个他能记住的单词,如果小易写出的单词是在系统提供的,将获得这个单词长度的平方的分数。注意小易写出的单词可能重复,但是对于每个正确的单词只能计分一次。
我使用C++的map容器实现这个简单的编程题,但只能通过80%的用例,不知什么原因,以下是我的代码:#include <map>
#include <string>
using namespace std;
int main()
{
int n, m, sum = 0;
string xiaoyi, sys;
map<string, int> hashxiaoyi;
cin>>n>>m;
for(inti = 0; i < n; i ++)
{
cin>>xiaoyi;
hashxiaoyi[xiaoyi] = 1;
}
for(inti = 0; i < m; i ++)
{
cin>>sys;
if(hashxiaoyi.find(sys) != hashxiaoyi.end())
sum += sys.length()*sys.length();
}
cout<<sum<<endl;
return0;
}
牛客网给出的题解用set实现:
/*
作者:NotDeep
链接:https://www.nowcoder.com/discuss/22696?type=0&order=0&pos=5&page=2
来源:牛客网
*/
#include <bits/stdc++.h>
using namespace std;
int m, n;
set<string> S1;
set<string> S2;
int main() {
cin >> n >> m;
for(int i = 0; i < n; i++) {
string x;
cin >> x;
S1.insert(x);
}
for(int i = 0; i < n; i++) {
string x;
cin >> x;
S2.insert(x);
}
int ans = 0;
for(auto &x : S1) {
if(S2.find(x) != S2.end()) ans += x.size() * x.size();
}
cout << ans << endl;
return 0;
}
相关文章推荐
- 网易2017春招笔试——小易记单词
- 小易记单词--网易2017春招实习笔试编程题10
- 网易互娱2017实习生招聘在线笔试第一场-3划线
- 网易2017实习生招聘笔试题—奇怪的表达式求值
- 网易2017春招笔试真题编程题集合
- 下厨房(istringstream的使用)----网易2017内推笔试编程题合集
- 网易笔试编程题:小易喜欢的单词(C++)
- 网易2017校园招聘笔试题 数字翻转
- 网易2017校园招聘笔试题 优雅的点
- 2017网易C++笔试:将构造函数补充完整
- 工作安排--网易2017春招实习笔试编程题6
- 网易2017内推笔试题(合唱团)
- 网易2017校园招聘笔试题——优雅的点
- 2017网易游戏雷火盘古实习生招聘笔试真题 第四题
- 网易互娱2017实习生招聘在线笔试(一)
- 网易2017实习生招聘笔试题 C++开发工程师
- 网易--小易记单词
- 名企笔试:网易2017内推笔试编(藏宝图)2017-03-25 算法爱好者
- 网易互娱2017实习生招聘在线笔试第一场-3划线
- 网易2017内推笔试编程题(合集)