POJ_1936_All in All(串)
这道题很简单,直接看代码吧,主要在于VERDI vivaVittorioEmanueleReDiItalia
的判断。这种情况下也是子串。
1 # include <stdio.h> 2 # include <string.h> 3 int main() 4 { 5 char str1[100001],str2[100001]; 6 int i,j,k,l1,l2; 7 while(scanf("%s%s",str1,str2) != EOF) 8 { 9 l1=strlen(str1); 10 l2=strlen(str2); 11 if(l1>l2) 12 printf("No\n"); 13 else 14 { 15 int r=0; 16 int leag=0; 17 if(strstr(str2,str1) != NULL) 18 printf("Yes\n"); 19 else 20 { 21 for(i=0;i<l1;i++) //如果不用上边的判断,单独用着两个循环判断也能做出来。 22 { 23 for(j=r;j<l2;j++) 24 { 25 if(str1[i] == str2[j]) 26 { 27 leag++; 28 r=j+1; 29 break; 30 } 31 } 32 } 33 if(leag == l1) 34 printf("Yes\n"); 35 else 36 printf("No\n"); 37 } 38 } 39 } 40 return 0; 41 }