Codeforces 665C - Simple Strings
思路:贪心。为了保证最小改变着次数,在改变每个相邻相同的字符时,保证改变后的字符和后面也不相同。
代码:
#include<bits/stdc++.h> using namespace std; string s; int main() { ios::sync_with_stdio(false); cin.tie(0); cin>>s; for(int i=1;i<s.size()-1;i++) { if(s[i]==s[i-1]) { for(int j=0;j<26;j++) { if('a'+j!=s[i-1]&&'a'+j!=s[i+1]) { s[i]='a'+j; break; } } } } if(s[s.size()-1]==s[s.size()-2]) { for(int j=0;j<26;j++) { if('a'+j!=s[s.size()-2]) { s[s.size()-1]='a'+j; break; } } } cout<<s<<endl; return 0; }