深信服笔试8.25第2题求解

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    string s;
    cin >> s;

    int trans[10] = {-1};
    memset(trans, -1, 10 * sizeof(int));
    cin >> n;

    int idx, tmp;
    for (int i = 0; i < n; ++i) {
        scanf("%d%d", &idx, &tmp);
        trans[idx] = tmp;
        for (int j = 0; j < 10; ++j) {
            if (trans[j] == idx) {
                trans[j] = tmp;
            }
        }
    }

    for (auto &ch :s) {
        if (trans[ch - '0'] != -1) {
            ch = trans[ch - '0'] + '0';
        }
        putchar(ch);
    }
    puts("");
    return 0;
}
测了好久,始终0case,有大神帮忙看一下问题出在哪吗?#笔试题目#
全部评论
考虑 0 1 0 2 这种情况,你的代码里trans[0]给替换成2了。但实际上在第一次替换时0已经变成1了。
1 回复 分享
发布于 2020-08-25 21:19
不是说如果不用Python做题是0分么。。。。。。
点赞 回复 分享
发布于 2020-08-25 21:16
第二题有过了的大佬说下吗?
点赞 回复 分享
发布于 2020-08-25 21:16
怀疑是  while(cin>>mystr>>n)  多组数据
点赞 回复 分享
发布于 2020-08-25 21:14
巧了,一毛一样
点赞 回复 分享
发布于 2020-08-25 21:12
并查集应该不行吧,,,比如说a变成b,b变成c,c在变成a,,,再比如a变成b,后面又来一个a变成c,,,
点赞 回复 分享
发布于 2020-08-25 21:11
**我跟你一样,也是0,不知道啥问题
点赞 回复 分享
发布于 2020-08-25 21:10
我也是并查集写的,思路跟你差不多,然后0case?内存超限???,不知道你是错误还是内存超限
点赞 回复 分享
发布于 2020-08-25 21:10

相关推荐

2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务