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

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

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

截取字符串例子:

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

实例:

[Java]
/** 
* 题目:求两个字符串的最大公共子字符串 
* 思路:将短的字符串从短到长做字符串截取,截取结果与另一个字符串做查询,如果查询到,默认为公共字符串。
*/
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); 
	}
   }
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值