题目大意:
注意:strlen是每一次都要重新遍历一遍数组
多组测试数据,每一组队两个字符串s和t。让你判断s是否为t的子序列。字符串长度100,000。这个时间复杂度肯定是O(n)了。
#include<iostream>
#include<string.h>
#include<stdio.h>
#define N 100500
using namespace std;
char s[N]={0};
char t[N]={0};
void ceshi()
{
for(int i=0;i<strlen(s);i++)
{
cout<<s[i];
}
for(int i=0;i<strlen(t);i++)
{
cout<<t[i];
}
}
int main()
{
while(scanf("%s %s",s,t)!=EOF)
{
//ceshi();
int x=strlen(s);
int y=strlen(t);
int i=0,j=0;//i指s,j指t
while(1)
{
if(s[i]==t[j])
{
i++;
}
j++;
if(i>=x)
{
printf("Yes\n");
break;
}
if(j>=y)
{
printf("No\n");
break;
}
}
}
}
注意:strlen是每一次都要重新遍历一遍数组