#include <iostream> #include <vector> #include <map> using namespace std; int main() { string s, t; cin >> s >> t; // 对s进行去重,利用容器来做 // vector<char> unmulti_s; string new_s; map<char, int> isEixt; // 记录26个字母是否出现过 for (int i = 0; i < 26; ++i) { isEixt['a' + i]; // int的初始值为0,表示未出现 } for (auto& ch : s) { // unmulti_s.insert(ch); // 去重时还需判断字符 是否出现过 auto it = isEixt.find(ch); if (it->second) { isEixt[ch]++; // 不加入到序列中 } else { new_s += ch; // 加入到序列中 isEixt[ch]++; } } // 然后在其末尾加上未曾出现的字符 for (auto& ele : isEixt) { if (ele.second == 0) { // unmulti_s.insert(ele.first); new_s += ele.first; } } for (int i = 0; i < t.length(); ++i) { t[i] = new_s[t[i] - 'a']; } // 输出结果 cout << t << endl; }