毕老师的视频中“获取两个相同字符串中最大相同子串”的代码似乎存在漏洞,比如,如下的两个字符串s1和s2,其中最大相同子串应该有两个,即“gh”和“mn”,而输出的结果只有第一个找到的“gh”,因此,代码需要进一步优化,我的问题是,在最大相同子串的数量不唯一时,如何才能将所有情况打印出来?
- public class StringTest3 {
- public static void main(String[] args) {
- String s1= "abcdefghimn";
- String s2= "aghjmn";
- System.out.println(getMaxSubString(s1, s2));
-
- }
-
- public static String getMaxSubString(String s1,String s2) {
-
- String max = "",min = "";
- max = s1.length()>s2.length()?s1:s2;
- min = (max==s1)?s2:s1;
-
- for(int x=0; x<min.length(); x++) {
- for(int y=0,z=min.length()-x; z!=min.length()+1; y++,z++) {
- String temp = min.substring(y,z);
- if(max.contains(temp)) //if(s1.indexOf(temp)!=-1)
- return temp;
- }
- }
- return null;
- }
- }
复制代码
|
|