String常见算法题3-获取两个字符串中最大相同子串(简易版)

以下代码仅针对找到即返回的情况,未处理包含多个最大相同字符串的情况

public String getMatchSameString(String str1, String str2){

    int str1Length = str1.length();

    int str2Length = str2.length();

    if(str1Length ==0 || str2Length ==0){

        return null;

    }

    String maxStr = (str1Length >= str2Length) ? str1 : str2;

    String minStr = (str1Length < str2Length) ? str1 : str2;

    int minLength = minStr.length();

    for(int i =0; i < minLength; i++){

        for(int start =0, end = minLength - i; end <= minLength ; start++,end++){

            String subStr = minStr.substring(start,end);

            if(maxStr.contains(subStr)){

                return subStr;

            }

        }

    }

    return null;

}

@Test

public void testGetMatchSameStr(){

    String str1 ="abcwerthelloyuiodefabcdef";

    String str2 ="cvhellobnmaabc";

    String maxSameString = getMatchSameString(str1, str2);

    System.out.println(maxSameString);

}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容