题意
给定一个字符串 s s s,构造出长度为 2 ⋅ ∣ s ∣ 2\cdot\lvert s\rvert 2⋅∣s∣ 的回文串,要求这个回文串中每个字母出现的个数都是原字符串的两倍。
其中,回文串指的是正反读都一样的字符串。
思路
构造出的回文串为 s + reverse ( s ) s+\text{reverse}(s) s+reverse(s)。这样,既满足每个字母出现的个数都是原字符串的两倍的要求,也满足回文的要求。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
string s;
cin >> t;
while(t --) {
cin >> s;
cout << s;
reverse(s.begin(), s.end());
cout << s << endl;
}
return 0;
}