题解 | #小红的回文串构造#
小红的回文串构造
https://www.nowcoder.com/practice/1d473fd892344be5b5e3f38610896a8a
4个指针,两个在最外面,两个在内层找不同,找到不同直接交换就行,一直缩小到相交都没找到就表示改变不了输出 -1
#include <iostream> #include <unordered_map> using namespace std; int main() { string s; cin >> s; int n = s.size(); int start= 0, end = n - 1; int i = start + 1, j = end - 1; while(i<j && s[start] == s[i]){ i++; j--; } if(i >= j){ cout << -1 << endl; }else{ swap(s[start], s[i]); swap(s[end], s[j]); cout << s << endl; } } // 64 位输出请用 printf("%lld")