int main() {     int len,len1,len2;     while(scanf("%s",sa) != EOF) {         scanf("%s",s1);         scanf("%s",s2);         len=strlen(sa);         len1=strlen(s1);         len2=strlen(s2);         for (int i=0;i<len;i++) sb[i]=sa[len-1-i];         for (int i=0;i<len1;i++) s3[i]=s1[len1-1-i];         for (int i=0;i<len2;i++) s4[i]=s2[len2-1-i];         GetNextval(s1);         int a1 = KmpSearch(sa,s1);         int a2 = KmpSearch(sb,s1);         GetNextval(s4);         int b1 = KmpSearch(sb,s4);         int b2 = KmpSearch(sa,s4);         bool flag1=false;         bool flag2=false;         if (a1!=-1 && b1!=-1 && a1+len1-1 < len-b1-len2) flag1=true;         if (a2!=-1 && b2!=-1 && a2+len1-1 < len-b2-len2) flag2=true;         //cout << a1 << len-b1-len2 << a2 << len-b2-len2 << endl;         if (flag1 && flag2) {             printf("both\n");             continue;         }         if (!flag1 && !flag2) {             printf("invalid\n");             continue;         }         if (flag1) {             printf("forward\n");         }         if (flag2){             printf("backward\n");         }      }     return 0; }
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务