题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5350
题意:忽略标点,问该串能否构成ABABA或ABABCAB的形式,ABC均不相同。
#include#include #include using namespace std;bool j1(int l,char *s,int n){ if(n<5)return false; //小于5不满足条件 if(l*2>=n)return false; int la=n-2*l; //la是A的长度 if(la>=l)return false; //A的长度大于等于AB,返回false for(int i=0;i =n)return false; //C为空串 int lc=n-3*l; //LC为C的长度 for(int i=0;i ='a'&&fs[i]<='z'||fs[i]>='A'&&fs[i]<='Z')s[n++]=fs[i]; //去掉标点符号 bool get=0; //标记是否满足条件 for(int i = n;i>=2;i--){ //从后向前枚举AB的长度,i是AB长度 if(ok(i,s,n)){get=1;break;} } if(get==1)printf("Yes\n"); else printf("No\n"); } return 0;}