原题链接:
Problem - C - Codeforces
题意:
给你一串字符,你可以把其中的某个字符变成其他字符,不限次数
要求:相邻两个字符不同(操作次数最小时)
解法:
贪心。可以把连续两个相同的字符的后一个变成其他字符。(和后面的字符也不一样就行)
Code :
# include <bits/stdc++.h>
//# define int long long
# define pb push_back
# define db double
using namespace std;char s[200005];int main(){scanf("%s", s+1);int n = strlen(s+1);for (int i = 1;i < n;i++){map <char, int> mp;if (s[i] == s[i+1]){mp[s[i]] = 1;mp[s[i+2]] = 1;if (mp['a'] == 0) s[i+1] = 'a';else if (mp['b'] == 0) s[i+1] = 'b';else s[i+1] = 'c';}} printf("%s", s+1);return 0;
}