文字の最長の繰り返しストリングを探します

temppos:録画サブ文字列の開始インデックス

一覧:重複した部分文字列を格納

パブリッククラスRepeatString {


プライベートの静的な無効longestdupString(Stringを){
IF(S == NULL || s.length()== 0){
リターン;
}


チャーTEMP = s.charAt(0)。
int型temppos = 0;
一覧<文字列>リスト=新しいのArrayList <文字列>();
以下のために(; I <s.length(); INT iが1 = I ++){
(I == s.length()-1)であれば{
IF(はlist.size()== 0){
(S)list.add。
ブレーク;
}そうしないと {
IF((I + 1 - temppos)> list.get(0).LENGTH()){
list.clear();
list.add((tempposをs.substring、I + 1))。
}そうであれば((I + 1 - temppos)== list.get(0).LENGTH()){
list.add((tempposをs.substring、I + 1))。
}そうしないと {

}
}
}
IF(s.charAt(I)== TEMP){
継続する;
}

IF(はlist.size()== 0){
list.add(s.substring(temppos、I));
} そうしないと {
IF(式(I - temppos)> list.get(0).LENGTH()){
list.clear();
list.add(s.substring(temppos、I));
}そうであれば((I - temppos)== list.get(0).LENGTH()){
list.add(s.substring(temppos、I));
}そうしないと {

}
}
温度= s.charAt(I)。
temppos = I;
}

ため(; I <はlist.size(); INT iが0 = I ++){
System.out.println(list.get(I));
}
}

パブリック静的無効メイン(文字列[] args){
longestdupString( "aaaaabbcaadddddseefgfsggggsssss");
}
公開された34元の記事 ウォンの賞賛2 ビュー40000 +

おすすめ

転載: blog.csdn.net/zjj2006/article/details/42804557