深信服c++笔试

题目1: 魔法棒
题目2:字符串修改

第一题 int 改为 long 可以AC
第二题 自测ok,case通过一直为 0
有没有大佬贴下第二题AC代码~

我先贴上我的,哭了
#include <iostream>
#include <sstream>
using namespace std;
int main() {
    long n;
    string s;
    cin>>s;
    cin>>n;
    
    int res[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
    while(n-->0){
        
        int a,b;
        cin>>a>>b;
        res[a] = b;
        
        for(int i=0;i<10;i++){
            if(res[i]==a){
                res[i] = b;
            }
                
        }
    }
    for(long i=0;i<s.size();i++){
        int index = s[i] - '0';
        if(res[index]!= -1)
            s[i] = (res[index]) + '0';
    }
    cout<< s;
    return 0;
}


#笔试题目##深信服#
全部评论
粗看似乎没问题,是循环输入吗,你看下我的https://www.nowcoder.com/discuss/488624
1 回复 分享
发布于 2020-08-25 21:11
第一题是每个值减去最小值的总和吗
1 回复 分享
发布于 2020-08-25 21:16
我和你一样 但是卡在了 10%。。。
点赞 回复 分享
发布于 2020-08-25 21:05
思路一样,0%...
点赞 回复 分享
发布于 2020-08-25 21:08
感觉没毛病…
点赞 回复 分享
发布于 2020-08-25 21:09
第二题跟你一样测试用例通过但通过率为0,用哈希表的方法
点赞 回复 分享
发布于 2020-08-25 21:10
服了,第一题没想到long,一直过不了,吐了
点赞 回复 分享
发布于 2020-08-25 21:13
第二题并查集,50%😂,先做的第二题,时间都在调试了,最后也没到100%,第一题没做了
点赞 回复 分享
发布于 2020-08-25 21:15
第一题我是找规律, 通过了
点赞 回复 分享
发布于 2020-08-25 21:19
维护一个转化数组
点赞 回复 分享
发布于 2020-08-25 21:20
初值不能给-1,初值应该是0-9,一开始是一一对应的,这种写法,第一组输入就没处理
点赞 回复 分享
发布于 2020-08-25 21:34
是这种情况不能通过,比如先输入1-9,再输入1-3。你直接把m(a)=b就不对了。因为1-9替换后就没有1了,1-3就没有可替换的了。我也是晚上才想明白这个地方。删除掉第一个m{a}=b。就能通过。
点赞 回复 分享
发布于 2020-08-26 00:42

相关推荐

评论
点赞
2
分享
牛客网
牛客企业服务