zoukankan      html  css  js  c++  java
  • 从两个字符串中找出最大公共子字符串

    从两个字符串(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
    {
        public static void main(String[] args)
        {
            String str_1="abcdefghijk";
            String str_2="abcdfghabcdef";
            commonString(str_1,str_2);
        }
    
        public static  void 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++)
                for(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);
        }
    }

    结果为:

    comString

  • 相关阅读:
    老王python博客
    python中文分词
    python 字典(dict)get方法应用
    python yield和generators(生成器)
    python ASCII返回对应的值(chr)
    python 字符串特点
    python 包的定义,结构,导入过程
    fabric的安装和配置
    python 正则表达式re findall
    python unittest单元测试方法和用例
  • 原文地址:https://www.cnblogs.com/lijiaman/p/5903722.html
Copyright © 2011-2022 走看看