字符串问题,要求把给出的字符串中的一些字符进行替换,使得相邻的字符不同。从左至右扫描,从第2个字符开始,因为相当于它是被夹在中间的那个字符,可以直接判断两边的字符情况,若两边存在一边是相同的,就把中间的这个字符改变掉。。
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int MAX = 2 * 1e5;
int main()
{
char str[MAX];
scanf("%s", str);
int lenth = strlen(str);
for (int i = 1; i < lenth; ++i)
{
if (str[i] == str[i - 1])
{
str[i] = 'a';
while (str[i] == str[i - 1] || str[i] == str[i + 1])
{
str[i]++;
}
}
}
printf("%s\n", str);
return 0;
}