cfEduRound163div2--D题解

D-Tandem Repeats?

题意:

做法:因为字符串长度较少,可以考虑枚举。or--动态规划

void solve(){           //D  枚举 
    //枚举!!!!!!!!!!
    string str; cin>>str;
    int n=str.size(),ans=0;
    for(int i=1;i<=n/2;i++){    //枚举一半!!!
        int cnt=0;
        for(int j=0;j+i<n;j++){
            if(str[j]==str[j+i]||str[j]=='?'||str[j+i]=='?'){
                cnt++;
                if(cnt==i){
                    ans=max(ans,cnt);
                    break;
                }
            }
            else cnt=0;
        }
    }
    cout<<ans*2<<endl;
}

 

posted @ 2024-03-24 15:06  osir  阅读(3)  评论(0编辑  收藏  举报