题意是给一个长度为n的字符串,如果有两个相邻的字符相等就输出No,把字符串中的?改成CMY,如果有两种及两种以上的改法就输出Yes。
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char str[1005];
int n;
int main()
{
scanf("%d",&n);
scanf("%s",str);
for(int i=0;i<n;i++){
if(str[i] == str[i+1] && str[i] != '?'){
printf("No\n");
return 0;
}
}
for(int i=1;i<n-1;i++){
if(str[i] == '?'){
if(str[i-1] == str[i+1] || str[i+1] == '?'){
printf("Yes\n");
return 0;
}
}
}
if(str[0] == '?' || str[n-1] == '?'){
printf("Yes\n");
return 0;
}
printf("No\n");
return 0;
}