华为机试---查找两个字符串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中的最长公共子串

题目描述 题目标题: 计算两个字符串的最大公共字串的长度,字符不区分大小写 详细描述: 接口说明 原型: int getCommonStrLength(char * pFirstStr,...
  • asd199086
  • asd199086
  • 2016年08月21日 16:56
  • 798

两个字符串中最长公共子字符串

如"abcde" "bkcdq" 最大公共子字符串是"cd" public static void findMaxCommonStr(){ Scanner s = new Scanner(Sys...
  • lingzhm
  • lingzhm
  • 2015年08月21日 16:06
  • 2135

最大公共子串(C语言实现)

给定两个字符串A和B,输出A和B中的最大公共子串。比如A=”aocdfe”,B=”pmcdfa”,则输出“cdf”#include #include #includechar *commstring(...
  • u012260238
  • u012260238
  • 2015年11月12日 20:29
  • 1539

求字符串A与字符串B的最长公共字符串(JAVA)

思路:引入一个矩阵的思想,把字符串A(长度为m)当成矩阵的行,把字符串B(长度为n)当矩阵的列,这样就构成一个m*n的矩阵。若该矩阵的节点对应的字符相同,即m[i]=n[j]时,该节点值为1;当前字符...
  • qq_16687803
  • qq_16687803
  • 2015年06月07日 13:06
  • 942

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

对于两个字符串a、b,开辟一个大小为[a.length()+1][b.length()+1]的二维整型数组,初始化第一行和第一列为0,对于其他的每一个a[i][j],如果字符串a的第i个字符与字符串b...
  • gluawwa
  • gluawwa
  • 2016年08月28日 15:56
  • 232

求两个字符串的最长公共子串——Java实现

要求:求两个字符串的最长公共子串,如“abcdefg”和“adefgwgeweg”的最长公共子串为“defg”(子串必须是连续的) 方法一: 对于较短的那个字符串,假设其长度为n,依次找到它的长度...
  • xiaoyi357
  • xiaoyi357
  • 2017年04月17日 15:06
  • 4738

51Nod-1006-最长公共子序列Lcs

给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。 比如两个串为:abcicba abdkscabab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最...
  • f_zyj
  • f_zyj
  • 2016年04月15日 18:08
  • 1522

用后缀数组求两个字符串的最长公共子串

对于两个字符串,不好直接运用后缀数组,所以我们可以把两个子串串中间用一个在字符串中不会出现的字符连接起 来,比如'$‘,计算后缀数组,检查后缀数组中所有相邻后缀。分属于两个字符串的后缀的lcp的最大值...
  • u013008291
  • u013008291
  • 2015年08月30日 17:28
  • 1977

面试题:给定a、b字符串,判断b是否为a的变位词(scala版本)

面试题:给定a、b字符串,判断b是否为a的变位词(scala版本)
  • wangzfox
  • wangzfox
  • 2015年05月10日 22:33
  • 421

**输出最长公共子序列-字符串

输入 第1行:字符串A 第2行:字符串B (A,B的长度 输出 输出最长的子序列,如果有多个,随意输出1个。 输入示例 abcicba abdkscab 输出示例 abca...
  • idealistic
  • idealistic
  • 2016年08月12日 20:12
  • 342
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:华为机试---查找两个字符串a,b中的最长公共子串
举报原因:
原因补充:

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