網(wǎng)易互娛2018校招游戲開發(fā)工程師筆試題第四題
#include<string>
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
struct name_address {
string name;
string address;
name_address(string n1, string a1) {
name = n1;
address = a1;
}
bool check(const string&ss) {
int xx = name.find('x');
if (xx != string::npos) {
string s1(name.begin(), name.begin() + xx);
string s2(ss.begin(), ss.begin() + xx);
if (s1 == s2)
return true;
else
return false;
}
return name == ss;
}
friend ostream& operator<<(ostream&out, name_address&ss) {
return out << "name:"<<ss.name << " address:" << ss.address;
}
};
class vstring {
vector<vector<string>>storage;
public:
vstring(int num) { //設置向量數(shù)目
storage.resize(num);
}
vector<string>& operator[](int x) { //方括號訪問
return storage[x];
}
int hang() {
return storage.size();
}
int lie(int i) {
return storage[i].size();
}
friend ostream& operator<<(ostream&out, vstring&ss) {
for (unsigned i = 0;i < ss.hang();i++) {
for (unsigned j = 0;j < ss.lie(i);j++) {
out << ss.storage[i][j] << " ";
}
out << endl;
}
return out;
}
};
class name_address_vector {
vector<vector<name_address>>storage;
public:
name_address_vector(int num) { //設置向量數(shù)目
storage.resize(num);
}
vector<name_address>& operator[](int x) { //方括號訪問
return storage[x];
}
int hang() {
return storage.size();
}
int lie(int i) {
return storage[i].size();
}
friend ostream& operator<<(ostream&out, name_address_vector&ss) {
for (unsigned i = 0;i < ss.hang();i++) {
for (unsigned j = 0;j < ss.lie(i);j++) {
out << ss.storage[i][j] << " ";
}
out << endl;
}
return out;
}
};
int main(void) {
//fstream in("E:\\aa.txt");
// if (in.is_open()) {
// cout << "文件打開成功\n";
//}
// else
// cout << "文件打開失敗\n";
int vector_num = 0;
cin >> vector_num;
vstring out(vector_num);
name_address_vector storage(vector_num);
for (int i = 0;i < vector_num;i++) {
int nav_num;
cin >> nav_num; //模板數(shù)目
for (int j = 0;j < nav_num;j++) {
string name, address;
cin >> name>>address;
storage[i].push_back(name_address(name,address));
}
int vstring_num;
cin >> vstring_num; //匹配的號碼數(shù)目
for (int k = 0;k < vstring_num;k++) {
string telephone;
cin >> telephone;
out[i].push_back(telephone);
}
}
//輸入test
/*
cout << endl;
cout << endl;
cout << storage;
cout << endl;
cout << endl;
cout << out;
cout << endl << endl;
cout << "輸出匹配為:";
*/
//數(shù)據(jù)處理
vector<string>output;
for (int i = 0;i < out.hang();i++) {
//out[i]是向量,要將其每個數(shù)據(jù)匹配storage[i]中的向量,不匹配則存儲"unknown",否則存儲相應地址
for (int j = 0;j < out.lie(i);j++) { //對于每一個out[i][j]這個數(shù),進行匹配號碼
bool it = false;
for (int k = 0;k < storage.lie(i);k++) {
if (storage[i][k].check(out[i][j])) {
output.push_back(storage[i][k].address);
it = true;
break;
}
}
if (!it) {
output.push_back("unknown");
}
if(it)
it = false;
}
}
cout << endl;
for (int i = 0;i < output.size();i++) {
cout << output[i] << endl;
}
return 0;
}
#網(wǎng)易##校招##筆試題目#
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
struct name_address {
string name;
string address;
name_address(string n1, string a1) {
name = n1;
address = a1;
}
bool check(const string&ss) {
int xx = name.find('x');
if (xx != string::npos) {
string s1(name.begin(), name.begin() + xx);
string s2(ss.begin(), ss.begin() + xx);
if (s1 == s2)
return true;
else
return false;
}
return name == ss;
}
friend ostream& operator<<(ostream&out, name_address&ss) {
return out << "name:"<<ss.name << " address:" << ss.address;
}
};
class vstring {
vector<vector<string>>storage;
public:
vstring(int num) { //設置向量數(shù)目
storage.resize(num);
}
vector<string>& operator[](int x) { //方括號訪問
return storage[x];
}
int hang() {
return storage.size();
}
int lie(int i) {
return storage[i].size();
}
friend ostream& operator<<(ostream&out, vstring&ss) {
for (unsigned i = 0;i < ss.hang();i++) {
for (unsigned j = 0;j < ss.lie(i);j++) {
out << ss.storage[i][j] << " ";
}
out << endl;
}
return out;
}
};
class name_address_vector {
vector<vector<name_address>>storage;
public:
name_address_vector(int num) { //設置向量數(shù)目
storage.resize(num);
}
vector<name_address>& operator[](int x) { //方括號訪問
return storage[x];
}
int hang() {
return storage.size();
}
int lie(int i) {
return storage[i].size();
}
friend ostream& operator<<(ostream&out, name_address_vector&ss) {
for (unsigned i = 0;i < ss.hang();i++) {
for (unsigned j = 0;j < ss.lie(i);j++) {
out << ss.storage[i][j] << " ";
}
out << endl;
}
return out;
}
};
int main(void) {
//fstream in("E:\\aa.txt");
// if (in.is_open()) {
// cout << "文件打開成功\n";
//}
// else
// cout << "文件打開失敗\n";
int vector_num = 0;
cin >> vector_num;
vstring out(vector_num);
name_address_vector storage(vector_num);
for (int i = 0;i < vector_num;i++) {
int nav_num;
cin >> nav_num; //模板數(shù)目
for (int j = 0;j < nav_num;j++) {
string name, address;
cin >> name>>address;
storage[i].push_back(name_address(name,address));
}
int vstring_num;
cin >> vstring_num; //匹配的號碼數(shù)目
for (int k = 0;k < vstring_num;k++) {
string telephone;
cin >> telephone;
out[i].push_back(telephone);
}
}
//輸入test
/*
cout << endl;
cout << endl;
cout << storage;
cout << endl;
cout << endl;
cout << out;
cout << endl << endl;
cout << "輸出匹配為:";
*/
//數(shù)據(jù)處理
vector<string>output;
for (int i = 0;i < out.hang();i++) {
//out[i]是向量,要將其每個數(shù)據(jù)匹配storage[i]中的向量,不匹配則存儲"unknown",否則存儲相應地址
for (int j = 0;j < out.lie(i);j++) { //對于每一個out[i][j]這個數(shù),進行匹配號碼
bool it = false;
for (int k = 0;k < storage.lie(i);k++) {
if (storage[i][k].check(out[i][j])) {
output.push_back(storage[i][k].address);
it = true;
break;
}
}
if (!it) {
output.push_back("unknown");
}
if(it)
it = false;
}
}
cout << endl;
for (int i = 0;i < output.size();i++) {
cout << output[i] << endl;
}
return 0;
}
#網(wǎng)易##校招##筆試題目#