博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java_基础知识_字符串练习题_计算两个字符串的最长公共字串长度
阅读量:7054 次
发布时间:2019-06-28

本文共 3446 字,大约阅读时间需要 11 分钟。

package tek;

  Java算法——求出两个字符串的最长公共字符串

/**    * @Title: 问题:有两个字符串str1和str2,求出两个字符串中最长公共字符串。 * @author 匹夫(在YW的数据基础上再次延伸)   * @date 2017年4月19日 下午8:08:37  */public class Demo1 {        /*    //减0 个字符  内循环1次    k2.substring(0, 7);//外循环第1次_内循环第1次    //减一个字符  内循环2次    k2.substring(0, 6);//外循环第2次_内循环第1次    k2.substring(1, 7);//外循环第2次_内循环第2次    //减两个字符 内循环3次    k2.substring(0, 5);// 外循环第3次_内循环第1次    k2.substring(1, 6);// 外循环第3次_内循环第2次    k2.substring(2, 7);// 外循环第3次_内循环第2次    //减3个字符  内循环4次    k2.substring(0, 4);// 外循环第4次_内循环第1次    k2.substring(1, 5);// 外循环第4次_内循环第2次    k2.substring(2, 6);// 外循环第4次_内循环第3次        k2.substring(3, 7);// 外循环第4次_内循环第4次*/        public static void main(String [] args){        String k1 = "10101121018";        String k2 = "101210182";        String max = null;        String max_str = null;        String min_str = null;        if(k1.length()==k2.length()){            max_str = k1;            min_str = k2;        }else if(k1.length()>k2.length()){            max_str = k1;            min_str = k2;        }else{            max_str = k2;            min_str = k1;        }        int index = 0;        for(int x=min_str.length();x>=0;x--){            int b = x;            boolean flag = false;            for(int y=0;y<=min_str.length()-x;y++){                index++;                int v = y;                String wait_max = min_str.substring(v, b);                if(max_str.contains(wait_max)){                    max = wait_max;                    flag = true;                    break;                }                b++;            }            if(flag){                break;            }        }        System.out.println(index);        System.out.println(max);    }}
String ms = "01012101121301";String ds = "0121121301";0121121301ms.contain(ds.substring(x,y));x思路210个字符1次1    0121121301    10    ms.contain(ds.substring(0,10));9个字符串2次2    012112130    9    ms.contain(ds.substring(0,9));3     121121301    9    ms.contain(ds.substring(1,10));8个字符3次4       01211213    8    ms.contain(ds.substring(0,8));5        12112130    8    ms.contain(ds.substring(1,9));6       21121301    8    ms.contain(ds.substring(2,10));7个字符4次7    0121121        7    ms.contain(ds.substring(0,7));8     1211213    7    ms.contain(ds.substring(1,8));9      2112130    7    ms.contain(ds.substring(2,9));10       1121301    7    ms.contain(ds.substring(3,10));思路1String temp_max = 0121,int x = 0;int y= 10;ms.contain(ds.substring(x,y));1    0121121301    ms.contain(ds.substring(0,10));2    012112130     ms.contain(ds.substring(0,9));3    01211213      ms.contain(ds.substring(0,8));4    0121121       ms.contain(ds.substring(0,7));5    012112        ms.contain(ds.substring(0,6));6    01211         ms.contain(ds.substring(0,5));7    0121          ms.contain(ds.substring(0,4));8    121121301     ms.contain(ds.substring(1,10));9    12112130      ms.contain(ds.substring(1,9));10    1211213      ms.contain(ds.substring(1,8));11    121121       ms.contain(ds.substring(1,7));12    12112        ms.contain(ds.substring(1,6));13    1211         ms.contain(ds.substring(1,5));14    121          ms.contain(ds.substring(1,4));15    21121301    ms.contain(ds.substring(2,10));16    2112130     ms.contain(ds.substring(2,9));17    211213      ms.contain(ds.substring(2,8));18    21121       ms.contain(ds.substring(2,7));19    1121301        ms.contain(ds.substring(3,10));
 

 

 

 

转载于:https://www.cnblogs.com/ak23173969/p/6735829.html

你可能感兴趣的文章
为什么要设计
查看>>
SerializableObj
查看>>
2018年5月31日笔记
查看>>
(转)CentOs上配置samba服务
查看>>
Photoshop给草坪上的人物加上唯美的紫色霞光
查看>>
移动平台对 META 标签的定义
查看>>
curl 命令详解
查看>>
启动改为本地Ip
查看>>
云服务器CentOS7.5安装MySQL5.7
查看>>
代理模式
查看>>
vue文档阅读笔记——计算属性和侦听器
查看>>
单元测试系列:Mock工具之Mockito实战
查看>>
二手GTX650
查看>>
Guava学习-缓存
查看>>
hexSHA1散列加密解密(不可逆)
查看>>
Pinterest架构:两年内月PV从零到百亿 - 非常值得参考【转】 - HorsonJin - 博客园...
查看>>
Swift设置自动行高
查看>>
171. Excel Sheet Column Number
查看>>
简单深搜
查看>>
关于获取客户端Mac地址
查看>>