C++ 代码
#include<iostream>
using namespace std;
const int N=100010;
int a[N],b[N];
int main()
{
int n,m,i=0,j=0;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<m;i++)
{
scanf("%d",&b[i]);
}
while(i<n&&j<m)//i和j分别是a和b的指针,每次单字符匹配成功i向后移动1位,不论成功与否j都向后移动1位,时间复杂度位O(n+m)
{
if(a[i]==b[j]) i++;
j++;
}
if(i==n)
{
printf("Yes");
}
else
{
printf("No");
}
return 0;
}