我们称一个字符串 SS 包含字符串 TT 是指 TT 是 SS 的一个子序列,即可以从字符串 SS 中抽出若干个字符,它们按原来的顺序组合成一个新的字符串与 TT 完全一样。
给定两个字符串 SS 和 TT,请问 TT 中从第一个字符开始最长连续多少个字符被 SS 包含?
输入格式
输入两行,每行一个字符串。
第一行的字符串为 SS,第二行的字符串为 TT。
两个字符串均非空而且只包含大写英文字母。
输出格式
输出一个整数,表示答案。
数据范围
1≤|T|≤|S|≤10001≤|T|≤|S|≤1000
输入样例:
ABCDEABCD
AABZ
输出样例:
3
题解:
直接用双指针一个一个遍历搜索即可。
代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<queue>
#include<stack>
#include<vector>
#include<unordered_set>
#include<unordered_map>
#include<map>
#include<set>
using namespace std;
typedef long long int ll;
const int INF=1e16;
string s1,s2;
void solve(){
cin >> s1 >> s2;
int t1=0,t2=0;
while(t1<s1.size() && t2<s2.size()){
if(s1[t1]!=s2[t2]){
t1++;
}
else{
t2++;t1++;
}
}
cout << t2;
}
int main(){
solve();
}