获取两个字符串中最大相同子串

2、获取两个字符串中最大相同子串。第一个动作:将短的那个串进行长度一次递减的子串打印。

"cvhellobnmtanop"

"andefc"

思路:

1,将短的那个子串按照长度递减的方式获取到。

2,将每获取到的子串去长串中判断是否包含,如果包含,已经找到!

package tan;

class  Test
{
	public static String getMaxSubString(String s1,String s2)
	{

		String max = "",min = "";
		//得到大的那个子串
		max = (s1.length()>s2.length())?s1: s2;
		//得到小的那个子串
		min = (max==s1)?s2: s1;

//		sop("max="+max+"...min="+min);

		//外层循环遍历整个小的那个子串
		for(int x=0; x<min.length(); x++)
		{	//内层循环遍历?
			for(int y=0,z=min.length()-x; z!=min.length()+1; y++,z++)
			{
				String temp = min.substring(y,z);

				sop(temp);
				if(max.contains(temp))//if(s1.indexOf(temp)!=-1)
					return temp;
			}
		}
		return "";
	}

	public static void main(String[] args)
	{
		String s1 = "ab";
		String s2 = "cvhellobnm";
		sop(getMaxSubString(s2,s1));
	}

	public static void sop(String str)
	{
		System.out.println(str);
	}
}

程序输出结果为:

andefc

andef

ndefc

ande

ndef

defc

and

nde

def

efc

an

an

获取两个字符串中最大相同子串,布布扣,bubuko.com

时间: 2024-12-26 06:15:24

获取两个字符串中最大相同子串的相关文章

给定两个字符串,获取两个字符串中最大相同的子串

1 package weekpratisce; 2 3 ///给定两个字符串,获取两个字符串中最大相同的子串 4 public class Demo9 { 5 public static void main(String[] args) { 6 String xx = "aaaaaaaaaaddddddd", yy = "45ddddda"; 7 String str = getMaxsubstring(xx, yy); 8 System.out.println(s

获取两个字符串中最大的相同子串

public class 获取两个字符串中最大的相同子串 { public static void main(String[] args) { String a="abcwerthelloadcedf"; String b="cdhelloesadcedf"; String c=getSonString(a,b); System.out.println(c); } private static String getSonString(String a, String

获取两个字符串的最大相同子串

/** 获取两个字符串的最大相同子串. String s1 = "也许成湖科技是今天最大的赢家"; String s2 = "可能成湖科技未必成为今天最大的赢家吧"; /** 获取两个字符串的最大相同子串. String s1 = "也许成湖科技是今天最大的赢家"; String s2 = "可能成湖科技未必成为今天最大的赢家吧"; 思路: 1,先明确两个字符串的长短,在长串中判断短串是否存在. 2 存在,已找到,说明短串就是

获取两个字符串全部公共的子串算法

应用场景: 获取两个字符串全部公共的子串. 思路: 1. 先获取两个子串的交集 2. 遍历交集子串,从最短子串到最长子串 public static List<String> getAllCommonSubStrings(String str1, String str2) { //TODO null check. String longString = str1; String shortString = str2; if(str1.length() < str2.length()){

获取两个字符串所有公共的子串算法

应用场景: 获取两个字符串所有公共的子串. 思路: 1. 先获取两个子串的交集 2. 遍历交集子串,从最短子串到最长子串 public static List<String> getAllCommonSubStrings(String str1, String str2) { //TODO null check. String longString = str1; String shortString = str2; if(str1.length() < str2.length()){

黑马程序员——找出两个字符串中最大的子串

找出两个字符串中最大的子串 </pre><pre name="code" class="java">public class StringMaxString { //找一个字符串的最大子串 public static void main(String[] args) { // TODO Auto-generated method stub String s1="qwerabcdtyuiop"; String s2=&quo

获取两个字符串中最长相等的字符串

获取两个字符串中最长相等的字符串 例:"likeyou"和"loveyou" 输出"eyou" 前段时间面试遇到的面试题,当时的想法是首先将字符串拆分成字符数组,然后拿两个数组去做比较,可惜由于基础不是很扎实,当时的for循环比较写成了这个样子 for (int i = 0; i < arrStr1.length; i++) { for (int j = 0; j < arrStr2.length; j++) { if (arrStr

黑马程序员_日记25_Java两个字符串的最大相同子串

--- android培训.java培训.期待与您交流! ---- /* 获取两个字符串中最大相同子串.第一个动作:将短的那个串进行长度一次递减的子串打印. "abcwerthelloyuiodef" "cvhellobnm" 模拟一下: 第一趟: 最大子串:cvhellobnm ↑--------↑ 在长字符串中查找 abcwerthelloyuiodef ↑--------↑ abcwerthelloyuiodef ↑--------↑ abcwerthello

java基础知识回顾之---java String final类普通方法的应用之“两个字符串中最大相同的子串”

/* * 3,两个字符串中最大相同的子串. * "qwerabcdtyuiop" * "xcabcdvbn" *  * 思路: * 1,既然取得是最大子串,先看短的那个字符串是否在长的那个字符串中. *   如果存在,短的那个字符串就是最大子串. * 2,如果不是呢,那么就将短的那个子串进行长度递减的方式取子串,去长串中判断是否存在. *   如果存在就已找到,就不用在找了. * 3.先找最大的子串,再递减子串找,找到,就停止 */ 原理图如图: 代码: publi