加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

从两个字符串中找出最大公共子字符串

发布时间:2021-05-21 05:56:51 所属栏目:大数据 来源: https://www.jb51.cc
导读:从两个字符串(str_1,str_2)中找出最大公共子字符串(comString)的方法为: 选取长度较短的字符串(假设str_1较短)做截取; 从字符串中截取长度为1的子字符串; 每个子字符串都在str_2中做查询,查询到则将该字符串赋予comString; 从字符串中截取长度为2的

从两个字符串(str_1,str_2)中找出最大公共子字符串(comString)的方法为:

  1. 选取长度较短的字符串(假设str_1较短)做截取;
  2. 从字符串中截取长度为1的子字符串;
  3. 每个子字符串都在str_2中做查询,查询到则将该字符串赋予comString;
  4. 从字符串中截取长度为2的子字符串,重复3;
  5. 从字符串中截取长度为n的子字符串,重复3;
  6. 结束。

截取字符串例子:

实例:

[Java]
/**
 * create by lijiaman on 2016-09-24
 * 题目:求两个字符串的最大公共子字符串
 * 思路:将短的字符串从短到长做字符串截取,截取结果与另一个字符串做查询,如果查询到,默认为公共字符串。
*/

package com.company;

public class Main
{
    static void main(String[] args)
    {
        String str_1="abcdefghijk";
        String str_2="abcdfghabcdef";
        commonString(str_1,str_2);
    }

    static   commonString(String str_1,String str_2)
    {
        String comString="";  //用于存放公共字符串
        String childString="";  存放拆分得到的子字符串
        String minString=str_1.length()<str_2.length()?str_1:str_2;  选取短的字符串做拆分
        System.out.println(minString);
        for(int i=1;i<=minString.length();i++)
            int j=0;j<minString.length();j++)
            {
                if(j+i<=minString.length())
                {
                    childString = minString.substring(j,j + i);
                    if (str_2.indexOf(childString) != -1)  如果不等于-1,则表示在str_2里面找到childString
                        comString = childString;
                }
            }
        System.out.println(comString);
    }
}

结果为:

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读