题目
题意
有一个长度为n的字串(由‘C’、‘M’和‘Y’组成),‘?’部分可填入任意一个,要求不出现连续相同的字符。问该字串是否有两个填充方法。
代码
#include<bits/stdc++.h>
using namespace std;
int n,flag=0;
string s;
int main() {
cin>>n;
cin>>s;
for(int i=0; i<n; i++) {
int j,t=0;
if(s[i]=='?') {
for(j=i; j<n; j++) {
if(s[j]!='?') break;
else t++;
}
if((t==2 || i-1<0 || j>=n) || (t==1 && s[i-1]==s[j]) ){
flag=1;
}
} else {
if(s[i]==s[i-1] || s[i]==s[i+1]){
printf("No\n");
return 0;
}
}
}
if(flag) printf("Yes\n");
else printf("No\n");
return 0;
}
网友评论