网易游戏2016在线笔试

来源:互联网 发布:软件需求分析推荐 编辑:程序博客网 时间:2024/04/28 05:23


只得了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;}


0 0
原创粉丝点击