华为机试---查找两个字符串a,b中的最长公共子串

原创 2016年05月31日 21:33:18

题目描述

查找两个字符串a,b中的最长公共子串 
输入描述:

输入两个字符串

输出描述:

返回重复出现的字符

输入例子:
abcdefghijklmnop
abcsafjklmnopqrstuvw
输出例子:
jklmnop
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);		
		while (scan.hasNext()) {
			String str1 = scan.nextLine();
			String str2 = scan.nextLine();
			longestCommonSubstring(str1, str2);
		}//endwhile		
		scan.close();
	}
	/**
	 * 打印输出两个字符串的最长公共子串
	 * */
	private static void longestCommonSubstring(String str1 , String str2){
		String long_str = str1.length() >= str2.length() ? str1 : str2;
		String short_str = str1.length() < str2.length() ? str1 : str2;
		String final_str = "";
		int short_length = short_str.length();
		int length = 0;
		for(int i = 0 ; i < short_length - 1 ; i++){
			for(int j = i + 1 ; j <= short_length ; j++ ){
				if(long_str.contains(short_str.substring(i, j)) && j - i > length){
					length = j - i;
					final_str = short_str.substring(i, j);
				}
			}
		}
		System.out.println(final_str);
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

华为OJ——查找两个字符串a,b中的最长公共子串

题目描述 查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。  输入描述: 输入两个字符串 输出描述: 返回重复出现的字符 输入例子: abcdefg...

华为练习--查找两个字符串a,b中的最长公共子串

这个问题:查找两个字符串中的最长公共子串是一个很常见的问题。以前一直都没搞懂,现在终于弄明白了。但是我这里使用的是string类以及它相关的函数。还可以不用string类来实现。

查找两个字符串a,b中的最长公共子串

一、问题描述查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。输入描述:输入两个字符串输出描述:返回重复出现的字符输入例子:abcdefghijklmnop abcsafj...

利用KMP算法,求顺序表存储的两个字符串的最长公共子串

程序是由顺序表实现,功能为查找两字符串中的最长公共子串; 两条字符串分别由两个顺序表存储; 查找思路是分解出短的那条字符串的全部连续子串(例如abc分解为abc,ab,a,bc,b,c), 再使用km...

后缀树和后缀数组 [3 两个字符串的最长公共子串]

后缀树和后缀数组 [3 两个字符串的最长公共子串] 8.4 两个字符串的最长公共子串 两个串的最长公共字串是相对于多个串要简单一点,不需要二分A。只需要判断相邻两个Height是不是分属两...

求两个字符串最长公共子串LCS(其它)

LCS(Longest Common Subsequence) 就是求两个字符串最长公共子串的问题。 比如:   String str1 = new String("adbccadebbca");...

给出两个字符串,找到最长公共子串,并返回其长度,java实现

给出两个字符串,找到最长公共子串,并返回其长度。 您在真实的面试中是否遇到过这个题? Yes 样例 给出A=“ABCD”,B=“CBCE”,返回 2 注意 子串的字符应该连续的出现在原字符串中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)