华为机试:字符串合并处理

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

int main() {
    string str, str1, str2;
    cin >> str1 >> str2;
    str = str1 + str2;
    str1.clear();
    str2.clear();
    //cout << str << endl;
    for (int i = 0; i < str.length(); i++) {
        if (i % 2 == 0) {
            str1.push_back(str[i]);
        }
        else {
            str2.push_back(str[i]);
        }
    }
    //cout << str1 << " " << str2 << endl;
    sort(str1.begin(), str1.end());
    sort(str2.begin(), str2.end());
    //cout << str1 << " " << str2 << endl;
    str.clear();
    int i = 0;
    while (i < str1.length() && i < str2.length()) {
        str.push_back(str1[i]);
        str.push_back(str2[i]);
        i++;
    }
    while (i < str1.length()) {
        str.push_back(str1[i]);
        i++;
    }
    while (i < str2.length()) {
        str.push_back(str2[i]);
        i++;
    }
    //cout << str << endl;
    map<char, char> m = {{'0', '0'},
                        {'1', '8'},
                        {'2', '4'},
                        {'3', 'C'},
                        {'4', '2'},
                        {'5', 'A'},
                        {'6', '6'},
                        {'7', 'E'},
                        {'8', '1'},
                        {'9', '9'},
                        {'a', '5'},
                        {'A', '5'},
                        {'b', 'D'},
                        {'B', 'D'},
                        {'c', '3'},
                        {'C', '3'},
                        {'d', 'B'},
                        {'D', 'B'},
                        {'e', '7'},
                        {'E', '7'},
                        {'f', 'F'},
                        {'F', 'F'}};
    for (i = 0; i < str.length(); i++) {
        if (m.find(str[i]) != m.end()) {
            str[i] = m[str[i]];
        }
    }
    cout << str << endl;
    return 0;
}

全部评论

相关推荐

04-27 08:59
常州大学 Java
牛客139242382号:《两门以上汇编语言》
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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