黑马程序员技术交流社区

标题: [java交流]寻找两个字符串中最大的相同子串 [打印本页]

作者: lvshen9    时间: 2017-3-13 12:40
标题: [java交流]寻找两个字符串中最大的相同子串
[Java] 纯文本查看 复制代码
package myexam.test24;


/**
* 寻找两个字符串中最大的相同子串
*
* 如:"qwerabcdtyniop"
*   "xcabcdvbn"
*   
*   思路:1.看短字符串在长字符串中是否存在,如果存在,那段字符串就是最大子串
*        2.如果不是,就将短串长度递减去判断
*
* @author lvshen
*
*/
public class MyTest7 {

        public static void main(String[] args) {
                String longStr="qwerabcdtyniop";
                String shortStr="xcabcdvbn";
               
                String sameStr=getSameStr(longStr, shortStr);
                System.out.println(sameStr);
               
        }
        public static String getSameStr(String longStr,String shortStr){
                for(int i=0;i<shortStr.length();i++){
                        for(int j=0,k=shortStr.length()-i;k<shortStr.length();j++,k++){
                                String temp=shortStr.substring(j, k);
                                if(longStr.contains(temp)){
                                        return temp;
                                }
                        }
                }
                return null;
        }
}


作者: Priscilla    时间: 2017-3-13 18:26
代码分析相当详细!
作者: zhao543    时间: 2017-3-13 18:57
11111111111111111111111111111
作者: xulinml    时间: 2017-3-14 09:23
谢谢分享~
作者: mrwalker    时间: 2017-3-14 11:23
好厉害,为什么我就想不到这种循环遍历的方式。循环条件k<=shortStr.length(),不然最后一个元素没法遍历到
作者: lvshen9    时间: 2017-3-15 10:50
mrwalker 发表于 2017-3-14 11:23
好厉害,为什么我就想不到这种循环遍历的方式。循环条件k

确实要=
作者: 935539    时间: 2017-3-15 12:40

谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2