本文主要是介绍《牛客》-C 小红构造回文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:在字符串前半部分进行扫描,如果发现连续两个的字母不一样,那只需要交换这两个字母的位置(当然后半部分对应位置是要交换,回文嘛)
收获:
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
这篇关于《牛客》-C 小红构造回文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!