题解 | #字符串合并处理#

字符串合并处理

https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f

#include <iostream>
#include <algorithm>
using namespace std;

string join(string s1,string s2){
    //第一步,合并
    string s;
    s = s1 + s2;
    string s_sort1,s_sort2;
    //第二步:对合并后的字符串的两个数组进行排序,再合并
    for (int i = 0; i < s.size(); i += 2){
        s_sort1 += s[i];
    }
    for (int i = 1; i < s.size(); i += 2){
        s_sort2 += s[i];
    }
    sort(s_sort1.begin(),s_sort1.end());
    sort(s_sort2.begin(),s_sort2.end());
    int j = 0, k = 0;
    for (int i = 0; i < s.size(); ++i){
        if (i % 2 == 0)
            s[i] = s_sort1[j++];
        else s[i] = s_sort2[k++];
    }
    // 第三步:利用字典法一一映射,题目说了转换为大写字母
    string A = "0123456789abcdefABCDEF";
    string B = "084C2A6E195D3B7F5D3B7F";
    for (char &c:s){
        if (c >= '0' && c <= '9'){
            c = B[c - '0']; 
        }
        else if (c >= 'a' && c <= 'f'){
            c = B[c - 'a' + 10];
        }
        else if (c >= 'A' && c <= 'F'){
            c = B[c - 'A' + 16];
        }
    }
    return s;
}
int main() {
    string s1, s2;
    string res;
    while (cin >> s1 >> s2) { 
        res = join(s1,s2);
        cout << res << endl;
    }
    return 0;
}

#23届找工作求助阵地##我的实习求职记录##14天打卡计划##零基础学习C++#
全部评论

相关推荐

02-18 17:30
腾讯_TEG_技术
多刷**&nbsp;背八股&nbsp;刷面经&nbsp;项目话术准备好&nbsp;不会差的!!!后台看到好多小伙伴们都出现其中一个环节的错误,,,可惜了抓紧机会吧&nbsp;有的是hc&nbsp;但缺的就是稍微用心的人
野猪不是猪🐗:多刷星星,背八股背话术,真的能过你们?对一个个没实习过的学生狂问场景题设计题和底层深挖,别以为我不知道一边说缺人还一边各种kpi面
点赞 评论 收藏
分享
2024-12-27 10:21
已编辑
海南师范大学 媒介策划
到我怀里来:身高体重住址这些就别写了,留几个关键的就行,工作经历突出重点写详细点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客企业服务