网易雷火8.14游戏研发笔试

做了1.15道,太恶心了
第一题解密,100%
第二题字符串染色,15%,扣了2个多小时,就是不知道错哪了,我是废物😪😪
第一题 
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
bool is_valid_ascii(vector<int> num){
    for(auto i:num){
        if(i!=32&&(i<65||i>90)) return false;
    }
   return true;
}
vector<int> find_magic_number(vector<int>nums){
    vector<int> res;
    for(int i=0;i<1000;i++){
        auto temp=nums;
        for(auto & num:temp){
            num-=i;
        }
        if(is_valid_ascii(temp)) res.push_back(i);
    }
    return res;
}
int main(int argc,char** argv)
{
    int N;
    cin>>N;
    vector<int> cipher(N);
    for(int i=0;i<N;i++){
        int cur;
        cin>>cur;
        cipher[i]=cur;
    }
    auto res=find_magic_number(cipher);
    if(res.size()!=1) cout<<res.size()<<endl;
    else{
        for(auto& i:cipher){
            i-=res[0];
            char c=i;
            cout<<c;
        }
        cout<<endl;
    }
    return 0;
}
第二题
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <unordered_map>
#include <stack>

using namespace std;
unordered_map<char,string> color;
bool isColor(char c){
    return c=='R'||c=='G'||c=='B'||c=='K'||c=='Y'||c=='W'||c=='P';
}
bool judge(string s){
    for(auto i:s){
        if(!(i>='0'&&i<='9'||i>='A'&&i<='F'))return false;
    }
    return true;
}

int main(int argc,char** argv)
{
    color['R']="FF0000";
    color['G']="00C932";
    color['B']="0000FF";
    color['K']="000000";
    color['Y']="FFFF00";
    color['W']="FFFFFF";
    color['P']="FF88FF";
    int M;
    cin>>M;
    getchar();
    while(M--){
        string s;
        getline(cin,s);
        vector<pair<string,string>> res;
        int len(s.size());
        stack<string> stk_color;
        string do_color;
        for(int i=0;i<len;i++){
            if(s[i]=='#'&&i+1<len&&isColor(s[i+1])){
                if(!stk_color.empty()&&!do_color.empty()){
                    res.push_back({do_color,stk_color.top()});
                    do_color.clear();
                    
                }
                stk_color.push(color[s[i+1]]); 
                i++;
            }else if(s[i]=='#'&&i+7<len&&s[i+1]=='C'&&judge(s.substr(i+2,6))){
                 if(!stk_color.empty()&&!do_color.empty()){
                    res.push_back({do_color,stk_color.top()});
                    do_color.clear();
                 
                }
                stk_color.push(s.substr(i+2,6));
                i+=7;
            }else if(s[i]=='#'&&i+1<len&&s[i+1]=='n'){
                if(stk_color.empty()) continue;
                res.push_back({do_color,stk_color.top()});
                do_color.clear();
                stk_color.pop();
                i++;
            }else{
                if(!stk_color.empty())do_color.push_back(s[i]);
            }
        }
        if(!stk_color.empty()&&!do_color.empty()){
            res.push_back({do_color,stk_color.top()});
            do_color.clear();
            stk_color.pop();
        }
        if(res.size()==0){
            cout<<"empty"<<endl;
        }else{
            for(auto i:res){
                cout<<i.first<<" "<<i.second<<endl;
            }
        }
    }
      return 0;
}



#网易雷火笔试#
全部评论
第一题我弄了半天只有98,第二题两个用例都过了只有3.3
1 回复 分享
发布于 2022-08-14 17:11
就搞出来一道,第二题也是做了两个多小时,也是没搞出来。
1 回复 分享
发布于 2022-08-14 17:13
我也不知道为啥只过了15%……
点赞 回复 分享
发布于 2022-08-14 17:12
一样一样,第二题死活一直15%,感觉可能是题目描述问题,或者理解有问题😫
点赞 回复 分享
发布于 2022-08-14 17:13
第一题过了,第二题做半天没搞出来,直接溜了
点赞 回复 分享
发布于 2022-08-14 17:16
我想问一下,求出序列中除去42的最大值与最小值,令最大值减去X小于等于90,同时令最小值减去X大于等于65,同时保证X大于等于0,在这个范围内的X应该都是满足条件的,但是写出来连测试用例都没过,后面改成X总是取最大值减去90,才把准确率刷到86%,我是很想知道我上面的思路有什么问题吗,或者谁能给我解释一下那个用例为什么只有一个解,按照我上面的思路X应该有四个解才对啊,而且确实是有四个解啊
点赞 回复 分享
发布于 2022-08-15 00:45
为什么我的流程显示正在笔试,但是没有给我发笔试通知啊😭
点赞 回复 分享
发布于 2023-08-15 23:16 浙江

相关推荐

牛客737698141号:他们可以看到在线简历的。。。估计不合适直接就拒了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
5 4 评论
分享
牛客网
牛客企业服务