您的位置:首页 > 其它

开天辟地第一篇

2006-12-30 00:45 246 查看
刚刚在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);

}本文出自 “零度空間” 博客,请务必保留此出处http://rhyme.blog.51cto.com/328158/68120
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: