网易2017暑期实习生招聘笔试编程题之小易背单词

题目:

屏幕上给出m个单词,10s时间让小易记忆。

小易给出记住的单词数n个。小易的分数等于完全答对的单词的长度的平方和。

输入n和m,小易默写出的单词,屏幕给出的单词,输出小易的得分。例如:

输入:

2 3

bad good

hello bad wood

输出

9

思路分析:使用set存储小易默写的单词(需要去重,有可能小易给出的答案中有两个相同的单词,所以用set)和屏幕给出的单词。然后遍历小易给出的单词,并查看其是否在屏幕给出的单词中。

#include <iostream>
#include <stdio.h>
#include <set>
#include <cstring>
#include <string>
using namespace std;
int main() {
    int result = 0;
    int n, m;
    
    set<string> res;//小易猜到的答案
    set<string> qes;//系统提供的单词

    cin >> n >> m;
	
    for(int i = 0; i < n; i ++){
	string x;
	cin >> x;
	res.insert(x);
    }
    for(int j = 0; j < m; j ++){
	string x;
	cin >> x;
	qes.insert(x);
    }

    set<string>::iterator iter = res.begin();
    while(iter != res.end()){
	if(qes.find(*iter) != qes.end()){
		string a = *iter;
		result +=( a.size() )*( a.size());
	}
	iter ++;
    }

    cout << result << endl;  
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值