判断两个字符串中的最长相同子串

该博客探讨了如何判断两个字符串中的最长相同子串。通过比较较小字符串中的每个字符在较大字符串中的存在情况,逐步扩展匹配的子串,并在过程中考虑优化策略,如使用结果集存储避免重复计算。
摘要由CSDN通过智能技术生成

题目:判断两个字符串中相同的最长字符串?

思路:

1、先找到较小的字符串(A),较大字符串为B;

2、循环A的字符c,判断该字符是否存在于B中,若存在则继续3,否则继续2;

3、叠加A中字符c后的字符d与c组合成新的字符串c,判断新c是否在B中,在则继续3,否则4;

4、判断c的长度是否大于原结果串ret的长度,是则取c,否则不做操作。继续执行2。

package com;

public class TwoStringCompare {

	public static void main(String[] args) {
		
		String s1 = "sajsaopdjsamsklahelloworldtofkjssd";
		String s2 = "sajsa2jsam2la7helloworldtofkjsadsasaklahelloworldtofkjssdhodsja";
		System.out.println(getMaxSameString(s1, s2));
		
	}
	
	/**
	 * 获取两个字符串最大的重复串(相同串)
	 * @Title: getMaxSameString
	 * @author csfkj
	 * @date 2018年7月28日 下午2:34:04 
	 * @version V1.0 
	 * @param s1
	 * @param s2
	 * @return  
	 * @return: String
	 */
	public static String getMaxSameString(String s1, String s2){
		int 
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值