本帖最后由 寐海流风 于 2014-6-14 10:33 编辑
在自学过程中毕老师讲了一个方法:获得两个字符串里,相等的子串中的最长的那个。
然后我自己先写了代码去实现这个方法,但是获得不了正确的结果,思考了好久也没能解决,期待高手帮忙看下代码:)(自己写了10多分钟的代码,不想就这么错下去啊,想改正过来):
public static String getLong(String s1,String s2) {
String sMax,sMin;
String ss = null;
sMax=s1.length()>=s2.length()?s1:s2;
sMin=s1.length()>s2.length()?s2:s1;
if(sMax.contains(sMin)) {
return sMin;
}else {
for(int x=sMin.length();x>1;x--) {
for(int y=0;y<=sMin.length()-x;y++) {
if(sMax.contains(sMin.substring(y,x+y))) {
ss = sMin.substring(y,x+y);;
}
}
}
}
return ss;
}
如:"jfowhroihefo","jfowshroihf"这两个字符串,得到最大相等子串应该是“hroih”。
但是我自己的方法得到的是“ih”。
|