思路:在字符串前半部分进行扫描,如果发现连续两个的字母不一样,那只需要交换这两个字母的位置(当然后半部分对应位置是要交换,回文嘛)
收获:
1:学到了处理这种改变回文妙妙解,这比以前up模拟半天快多了
2: 对swap函数更了解了 (原来swap也可以交换字符串的对应位置(swap(s[i],s[j])))
ACcode:
#include <bits/stdc++.h>
using namespace std;
#define int long long
string s;
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;
}
over