题解 | #小红的回文串构造#

小红的回文串构造

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;
}

全部评论

相关推荐

10-17 16:07
门头沟学院 Java
牛牛大你18号:在汇报,突然弹出来,,领导以为我在准备跳槽,刚从领导办公室谈心出来
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务