8.25深信服笔试C++

深信服字符串变换代码如下,为啥子不过呢,每次都对前一次的0 - 9索引下的转变结果进行修改,没想明白为什么没过
#include<iostream>
#include<vector>
#include<string>
#include<map>
using namespace std;

class Solution{
public:
    void solve(string str, vector<pair<int, int> >&nums){
        int size = nums.size();
        map<int, int>M;
        for(int i = 0; i < size; i++){
            int a = nums[i].first, b = nums[i].second;  
            if(M.find(a) == M.end()){
                M[a] = b;
                for(int i = 0; i < 10; i++){
                    if(M.find(i) != M.end() && M[i] == a)M[i] = b;
                }
            }
        }
        for(int i = 0; i <str.length(); i++){
            int tmp = str[i] - '0';
            if(M.find(tmp) != M.end())
                str[i] = M[tmp] + '0';
        }
        cout << str;
        return;
    }

};
int main(){
    string str = "";
    cin >> str;
    int n;
    cin >> n;
    vector<pair<int, int> >nums(n, pair<int, int>(0, 0));
    for(int i = 0; i < n; i++){
        int a, b;
        cin >> a >> b;
        nums[i].first = a;
        nums[i].second = b;
    }

    Solution s;
    s.solve(str, nums);
    cout<<endl;
    return 0;
}

#笔试题目##深信服#
全部评论
先把变化按0到9便利一遍,然后的到0到9最后会变成什么,然后在字符串上修改一次就可以了,降低复杂度
1 回复
分享
发布于 2020-08-25 21:19
你跟我的做法挺像,记录0-9的索引,定义一个二维数组记录,但是我的提示是内存不足,0% #include<algorithm> #include<string> #include<iostream> #include<vector> using namespace std; const int N = 1000005; int res[N]; int main() { string s; cin >> s; int n; cin >> n; vector<vector<int>>index(10);//索引值   for (int i = 0; i<s.size(); i++) { index[s[i] - '0'].push_back(i); } while (n--) { int a; int b; cin >> a >> b; //把index[a]全部传到index[b] for (int i = 0; i < index[a].size(); i++) { index[b].push_back(index[a][i]); } index[a].clear(); } for (int i = 0; i < index.size(); i++) { for (auto v : index[i]) { res[v] = i; } } for (int i = 0; i<s.size(); i++)  cout << res[i]; cout <<endl; }
点赞 回复
分享
发布于 2020-08-25 21:16
联想
校招火热招聘中
官网直投
我是并查集做的 给我显示一个内存超限,我就开了一个a[15] 和一个string。。。
点赞 回复
分享
发布于 2020-08-25 21:22
为啥我回帖只能写25个字以内
点赞 回复
分享
发布于 2020-08-26 16:47

相关推荐

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