-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStringDemo2.java
More file actions
34 lines (28 loc) · 1022 Bytes
/
StringDemo2.java
File metadata and controls
34 lines (28 loc) · 1022 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package String;
//获取两个字符串中最长的相同子串
//比如:str1 = "abcwerthelloyuiodef",str2 = "cvhellobnm"
import org.junit.Test;
public class StringDemo2 {
public String getMaxSameString(String str1,String str2){
String maxStr = (str1.length() >= str2.length())? str1 : str2;
String minStr = (str1.length() < str2.length())? str1 : str2;
int length = minStr.length();
//外层循环比较长度递减
for(int i = 0;i < length;i++){
//内层循环比较相同长度的不同子串
for(int x = 0,y = length - i;y <= length;x++,y++){
if(maxStr.contains(minStr.substring(x,y))){
return minStr.substring(x,y);
}
}
}
return null;
}
@Test
public void test(){
String str1 = "abcwerthelloyuiodef";
String str2 = "cvhellobnm";
String sameString = getMaxSameString(str1,str2);
System.out.println(sameString);
}
}