[ABC141E] Who Says a Pun? 题解
主播主播,DP 确实很好写,但是还是太复杂了,有没有更好写的做法?
有的有的,像这样的做法还有
提供一种题解没有的做法。
考虑枚举每个子串的开头的距离
记录一个
扫一遍比较
由于答案要求不交,我们每次对
最后代码非常非常短。
#include <bits/stdc++.h>
using namespace std;
int n,ans=0;
string str;
int main(){
cin>>n;
cin>>str;
for(int i=1;i<=n;i++){
int cnt=0;
for(int j=0;j<n-i;j++){
if(str[j]==str[j+i])cnt++;
else cnt=0;
ans=max(ans,min(cnt,i));
}
}
cout<<ans<<"\n";
return 0;
}