刚刚在CSDN中看到一个发贴求一个算法,具体如下:
 
求一个字符串中最长的相同子串。例如。bbeeessssff,就是ssss,qwerrrghh,就是rrr.
 
 
我写了个算法,共享出来,需要的可以来看看了,多支持一下!
 
 
 
private  static void getMaxStr(String str){
  String a="";
  String maxstr = "";
  int maxlength = 0;  
  int start=0;
  for(int i =0;i<str.length();i++){
            //判断当前的字符是否和前面的相同
      if(!a.equals(String.valueOf(str.charAt(i)))){//当前字符和前面的字符不相同
    start = i;//相同字符的开始位置
    a=String.valueOf(str.charAt(i));
      }else{ //当前字符和前面的字符相同
    String curmaxstr = str.substring(start,i+1);//从相同字符开始位置到目前的字符串
    int curmaxlength = curmaxstr.length();//相同字符串的长度
    if(curmaxlength>maxlength){//如果后面相同的字符串长度大于当前字符串长度的话
        maxlength = curmaxlength;
        maxstr = curmaxstr;
    }
      }
  }
  System.out.println("最大长度的字符串:" + maxstr);
  System.out.println("最大长度的字符串的长度:" + maxlength);
  
    }