题解 | #小红的回文串构造#
小红的回文串构造
https://www.nowcoder.com/practice/1d473fd892344be5b5e3f38610896a8a
// #include <iostream> // using namespace std; // int main() { // string s ; // cin>>s ; // if(s.size() %2 ) // { // if(s.size() <= 3 ) // { // cout<<-1 <<endl ; // } // else // { // int mid = s.size() /2 ; // char t = s[mid-2] ; // s[mid-2] = s[mid -1 ] ; // s[mid - 1] = t ; // t = s[mid +1 ] ; // s[mid +1 ] =s[mid +2 ] ; // s[mid +2 ] = t ; // cout<<s<<endl ; // } // } // else { // if(s.size() == 2) // { // cout<<-1 <<endl ; // } // else { // int mid = s.size() /2 ; // char t = s[mid] ; // s[mid] = s[mid +1] ; // s[mid+1] = t ; // t = s[mid-1] ; // s[mid-1] = s[mid -2] ; // s[mid-2] = t ; // cout<<s ; // } // } // } // // 64 位输出请用 printf("%lld") #include <bits/stdc++.h> using namespace std; #define int long long string s; // 前半段遇到i与 i-1 不相同的就 swap一下, 当然后半段也是。 void solve() { cin>>s; for(int i=1; i<s.size()/2; i++) { if(s[i]!=s[i-1]) { swap(s[i],s[i-1]); swap(s[s.size()-i-1],s[s.size()-i]); cout<<s<<"\n"; return; } } cout<<-1<<"\n"; } signed main() { ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); int tt=1; //cin>>tt; while(tt--) { solve(); } return 0; }