您的位置:首页 > 其它

网易游戏2016在线笔试

2015-09-13 17:45 405 查看




只得了60/100

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <vector>
#include <string>

using namespace std;

int countLevel(const string & s)
{
int count = 0;
for(int i = 0; i < s.size(); ++i)
{
if(s[i] == '{')
{
++count;
}else if(s[i] == '}')
{
break;
}else
{

}

}
return count + 1;
}

int main()
{

vector<vector<string> >

vector<vector<int> > vec;
char* buf = (char*)malloc(10000000);
int flag = 0;
memset(buf, 0, 10000000);
int count = 0;
while(gets(buf) != NULL)
{

if(flag == 0)
{
//buf[strlen(buf) - 1] = '\0';
//time_t t1 = time(NULL);
qvec.clear();
string s = buf;
int level = countLevel(s);

qvec.resize(level);

string tmp = "";
int count = 0;

for(int i = 0; i < s.size(); ++i)
{
if(s[i] != '{' && s[i] != ',' && s[i] != '}')
{
tmp += s[i];

}else if(s[i] == '{')
{

if(tmp != "")
{

qvec[count].push_back(tmp);
++count;
}
//++count;
tmp = "";
}else if(s[i] == '}')
{

if(tmp != "")
{

qvec[count].push_back(tmp);
--count;
}
//--count;
tmp = "";
}else if(s[i] == ',')
{

if(tmp != "")
{

qvec[count].push_back(tmp);
}
tmp = "";
}else
{   // do nothing
}

}

++flag;
}else
{
//time_t t1 = time(NULL);
string s = buf;
int level = 0;
vector<int> ivec;

for(int i = 0; i < qvec.size(); ++i)
{

for(int j = 0; j < qvec[i].size(); ++j)
{

if(s == qvec[i][j])
{

if(find(ivec.begin(), ivec.end(), i + 1) == ivec.end())
{
level = i + 1;
ivec.push_back(level);
}

}
}
}
flag = 0;
sort(ivec.begin(), ivec.end());

vec.push_back(ivec);

// time_t t2 = time(NULL);

}
memset(buf, 0, 10000000);
}
for(int i = 0; i < vec.size(); ++i)
{
for(int j = 0; j < vec[i].size(); ++j)
{
if(j == 0)
{
printf("%d", vec[i][j]);
}else
{
printf(",%d ", vec[i][j]);
}
}
printf("\n");
}
free(buf);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: