如题,样例输出15,调半天挑不出错,代码求调试
#include<iostream>
using namespace std;
unsigned long long Hash(string s,int st,int end){
int base=232,t=1;
unsigned long long int ans=0;
for(int i=st;i<end;i++){
ans+=t*s[i];
}
return ans;
}
int ans(string a,string b){
int ans=min(a.size(),b.size());
for(;ans>=0;ans--){
int asha=Hash(a,a.size()-ans,a.size()),ashb=Hash(b,0,ans);
if(asha==ashb){
return ans;
}
}
}
int main(){
string a,b;
cin>>a>>b;
cout<<max(ans(a,b),ans(b,a));
}