一、题面

SZUOJ - 最长重复子串 —— string应用

 

二、题解

利用string的subtr()函数和find()函数简化编程,注意题面说明子串是不重叠的

 

三、实现代码

#include <iostream>
#include <string>

using namespace std;

int main(){
    int t;
    cin>>t;
    while(t--){
        int i,j;
        int len=-1;
        string s;
        string tmp;
        cin>>s;
        i=s.size();
        for(i=1;i<=(s.size()/2);i++){
            for(j=0;j<=(s.size()/2);j++){
                tmp=s.substr(j,i);
                if(s.find(tmp,j+i)!=s.npos) len=i;
            }
        }
        cout<<len<<endl;
    }
    return 0;
}

 

相关文章: