zoukankan      html  css  js  c++  java
  • 求两个字符串的最长公共子串——Java实现

    要求:求两个字符串的最长公共子串,如“abcdefg”和“adefgwgeweg”的最长公共子串为“defg”(子串必须是连续的)

    public class Main03{
    	// 求解两个字符号的最长公共子串
    	public static String maxSubstring(String strOne, String strTwo){
    		// 参数检查
    		if(strOne==null || strTwo == null){
    			return null;
    		}
    		if(strOne.equals("") || strTwo.equals("")){
    			return null;
    		}
    		// 二者中较长的字符串
    		String max = "";
    		// 二者中较短的字符串
    		String min = "";
    		if(strOne.length() < strTwo.length()){
    			max = strTwo;
    			min = strOne;
    		} else{
    			max = strTwo;
    			min = strOne;
    		}
    		String current = "";
    		// 遍历较短的字符串,并依次减少短字符串的字符数量,判断长字符是否包含该子串
    		for(int i=0; i<min.length(); i++){
    			for(int begin=0, end=min.length()-i; end<=min.length(); begin++, end++){
    				current = min.substring(begin, end);
    				if(max.contains(current)){
    					return current;
    				}
    			}
    		}
    		return null;
    	}
    	
    	public static void main(String[] args) {
    		String strOne = "abcdefg";
    		String strTwo = "adefgwgeweg";
    		String result = Main03.maxSubstring(strOne, strTwo);
    		System.out.println(result);
    	}
    }
    

      

    总觉得这题,输出结果和题意不相符合,结果2,是不是把B序列翻转,求出两者最长公共子串

  • 相关阅读:
    yii模板中常用变量总结
    Yii CDbCriteria的常用方法总结
    Yii框架Yiiapp()的理解
    Yii 中比较常用的rules验证规则记录
    c++,opencv播放视频
    python--输入一组无序的数,排序
    python入门,猜数
    关于爬楼梯问题的斐波那契数列
    获取文件名字,路劲中的某一部分信息
    简单帧差法
  • 原文地址:https://www.cnblogs.com/hgc-bky/p/9545355.html
Copyright © 2011-2022 走看看