```c++
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
char a[101];
while(t--)
{
memset(a,0,sizeof a);
int n;
scanf("%d",&n);
scanf("%s",&a);
int k;
for(int i=0;i<n;i++)
{
if(a[i]!='?')
{
k=i;
break;
}
}
for(int i=k+1;i<n;i++)
{
if(a[i]=='?')
{
if(a[i-1]=='B')a[i]='R';
else a[i]='B';
}
}
for(int i=k-i;i>=0;i--)
{
if(a[i]=='?')
{
if(a[i+1]=='B')a[i]='R';
else a[i]='B';
}
}
printf("%s\n",a);
}
return 0;
}
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
int a;
scanf("%d",&a);
char s[101];
while(a--)
{
int q;
memset(s,0,sizeof s);
scanf("%d",&q);
scanf("%s",&s);
int f=0;//初始化,当第一位是?,即可判断
for(int i=0; i<=q-1; i++)
{
if(s[i]!='?')
{
f=i;
//printf("%d\n",f);
break;
}
}//
for(int i=f; i>=0; i--)
if(s[i]=='?')
if(s[i+1]=='R')
s[i]='B';
else
s[i]='R';
for(int i=f; i<q; i++)
if(s[i]=='?')
if(s[i-1]=='R')
s[i]='B';
else
s[i]='R';
puts(s);
}
}
这是别人写的不知道为啥看着基本相同他的却能通过而我的却超时,求解。