链接:https://ac.nowcoder.com/acm/contest/11190/A
来源:牛客网
题目描述
小红拿到了一个只含有'R'、'B'、'G'三种字符的、长度为n的字符串。
她每次可以选择一个字母改变字母的值(改变的值也必须是'R'、'B'、'G'中的一种)。
小红想进行不超过 ⌊n2⌋\lfloor \frac {n}{2} \rfloor⌊2n⌋次操作,操作结束后字符串不存在相邻两个相等的相同字母。
你能帮帮小红吗?只用输出任意一种可行解即可,不需要把操作数最小化。
输入描述:
第一行一个正整数 nnn ,代表字符串的长度。(1≤n≤10^5) 第二行为一个只含有'R'、'B'、'G'这三种字符的字符串。
输出描述:
请输出小红操作后的字符串。请务必保证操作次数不超过 ⌊n2⌋\lfloor \frac {n}{2} \rfloor⌊2n⌋。有多种解法的话输出任意即可。
示例1
输入
5 GBGGB
输出
GBGRB
说明
只需要把第四个字符改成R即可。
示例2
6 BBBBBB
输出
RBRBGB
说明
修改了第一个、第三个、第五个字符
代码实现:
#include<stdio.h>
int main()
{
char a[100000];
int n;
scanf("%d",&n);
getchar();//吸收空格
gets(a);
int i;
for(i=0;a[i]!='\0';i++)//判断
{
if(a[i]==a[i+1]&&a[i]=='G')
{
a[i+1]='B';
}
if(a[i]==a[i+1]&&a[i]=='B')
{
a[i+1]='R';
}
if(a[i]==a[i+1]&&a[i]=='R')
{
a[i+1]='G';
}
}
puts(a);
return 0;
}