跳到主要内容

题解:CF1968B Prefiquence

· 阅读需 1 分钟
lailai
Blogger

原题链接

题意简述

求字符串 aa 的最长前缀是字符串 bb 的子序列。

解题思路

枚举字符串 bb。如果等于 aia_i,说明目前长度为 ii 的前缀符合要求,后续判断长度为 i+1i+1 的前缀是否符合要求,所以令 ii+1i\gets i+1

参考代码

#include <bits/stdc++.h>
using namespace std;

using ll=long long;
const int inf=0x3f3f3f3f;
const int mod=1e9+7;
const int N=200005;
int main()
{
int T;
cin>>T;
while(T--)
{
int n,m;
string a,b;
cin>>n>>m>>a>>b;
int i=0,j=0;
while(i<n&&j<m)
{
if(a[i]==b[j])i++;
j++;
}
cout<<i<<'\n';
}
return 0;
}