题目:http://acm.hdu.edu.cn/showproblem.php?pid=2203
AC代码:
#include<stdio.h> #include<string.h> #define MAXLEN 100005 char s1[MAXLEN],s2[MAXLEN]; int IsSubset(int len1,int len2){ int i,j,k; for(i=0;i<len1;i++){ if(s1[i]==s2[0]){//遇到字符与s2首字符相等; j=i+1; k=1; while(k<len2&&s1[j]==s2[k]&&j!=i){ k++; j=(j+1)%len1; } if(k==len2){ return 1; } } } return 0; } int main(){ int len1,len2,i; while(gets(s1)!=NULL){ gets(s2); len1=strlen(s1); len2=strlen(s2); if(IsSubset(len1,len2)==1){ printf("yes/n"); } else{ printf("no/n"); } } }