题解 | #字符串合并处理#
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
输入s1、s2,合并得到str;利用s1,s2得到奇偶的排序,在赋予str,
转换只有十六种情况,用Switch分别列举
#include<iostream> #include<string>//字符串 本质是一个类 #include<algorithm>//算法 using namespace std; int main() { string s1 = ""; string s2 = ""; cin >> s1 >> s2; string str = s1 + s2; s1 = ""; s2 = ""; for (int i = 0; i < str.size(); ++i) { if (i % 2 == 0) { s1 += str[i]; } else { s2 += str[i]; } } sort(s1.begin(), s1.end()); sort(s2.begin(), s2.end()); int j = 0; int k = 0; for (int i = 0; i < str.size(); ++i) { if (i % 2 == 0) { str[i] = s1[j]; j++; } else { str[i] = s2[k]; k++; } } for (int i = 0; i < str.size(); ++i) { switch (str[i]) { case '1': str[i] = '8'; break; case '2': str[i] = '4'; break; case '3': str[i] = 'C'; break; case '4': str[i] = '2'; break; case '5': str[i] = 'A'; break; case '6': str[i] = '6'; break; case '7': str[i] = 'E'; break; case '8': str[i] = '1'; break; case '9': str[i] = '9'; break; case 'a': case 'A': str[i] = '5'; break; case 'b': case 'B': str[i] = 'D'; break; case 'c': case 'C': str[i] = '3'; break; case 'd': case 'D': str[i] = 'B'; break; case 'e': case 'E': str[i] = '7'; break; case 'f': case 'F': str[i] = 'F'; break; default: break; } } cout << str << endl; system("pause"); return 0; }