这道题就是寻找T从第一个1开始的子串中同时也是S串的子序列的最长串,因此我们可以直接初始化ans = 0;从S串开头遍历,当S[i] == T[ans]时候,ans自增,最后直接输出ans即可
上代码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
string S, T;
int ans = 0;//用于统计答案
int main(void)
{
cin >> S >> T;
int n = S.size();
for(int i = 0; i < n; i++){
if(T[ans] == S[i]){
ans++;
}
}
cout << ans << endl;
return 0;
}