首页 > 代码库 > [POJ1936]All in All

[POJ1936]All in All

题目大意:读入两个字符串$s1$和$s2$,要你判断$s1$是不是$s2$的子串。

思路:模拟,用$a1$,$a2$两个指针表示当前判断到的位置。如果$s1[a1]$等于$s2[a2]$,则$s1$+1,$s2$+1,否则$s2$+1。最后如果所有字符全都判断成功,则输出“Yes”,否则“No”。(看似很长,实际上很简单)

 

C/C++ Code:

 

 1 #include<stdio.h> 2 #include<string.h> 3 char s1[100005],s2[100005]; 4 int main(){ 5     while(scanf("%s %s",s1,s2)!=EOF){ 6         int a1=0,a2=0,l1=strlen(s1),l2=strlen(s2); 7         while(a1!=l1&&a2!=l2){ 8             if(s1[a1]==s2[a2])a1++; 9             a2++;10         }11         if(a1==l1)puts("Yes");else12         puts("No");13     }14     return 0;15 }

 

[POJ1936]All in All