#include <bits/stdc++.h>
//#include <string>
//#include <iostream>
//#include <stdlib.h>
using namespace std;
typedef long long ll;
int min(ll a,ll b)
{
if(a<=b)return a;
else return b;
}
int main()
{
string s;
string t;
ll i=0;
cin>>s;
cin>>t;
ll next[200005]={0};
ll ans=0;
while(i<s.size())
{
//string s1;
//s1=s.substr(i,s.size()-1);
//s1=s;
ll j=i,z=0,k=0;
while(s[j]==t[k]&&j<s.size()&&k<t.size())
{
j++;
k++;
z++;
}
next[i]=z;
i++;
}
for(int i=0;i<s.size();i++)
{
ans+=min(next[i],t.size()-1);
if(s[i+next[i]]<t[next[i]])
ans+=s.size()-next[i]-i;
}
cout<<ans<<endl;
}
全部评论
(0) 回帖