从两个字符串中找出最大公共子字符串
从两个字符串(str_1,str_2)中找出最大公共子字符串(comString)的方法为:
- 选取长度较短的字符串(假设str_1较短)做截取;
- 从字符串中截取长度为1的子字符串;
- 每个子字符串都在str_2中做查询,查询到则将该字符串赋予comString;
- 从字符串中截取长度为2的子字符串,重复3;
- 从字符串中截取长度为n的子字符串,重复3;
- 结束。
截取字符串例子:
实例:
[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); } }
结果为:
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?