题意:给定两个字符串s和t,问s是否为t的子串。
思路:算法设计第4章习题4。直接贪心即可,复杂度O(len(s)+len(t))。
#include <stdio.h>
#include <string.h>
#define N 100005
char s[N],t[N];
int main(){
while(scanf("%s %s",s,t)!=EOF){
int i,j,lens,lent;
lens = strlen(s);
lent = strlen(t);
for(i = j = 0;i<lens&&j<lent;j++)
if(s[i] == t[j])
i++;
if(i == lens)
printf("Yes\n");
else
printf("No\n");
}
}