- /*
- 习题3,获取字符串在另一字符串中相同的最大子串.
- */
- public class StringTest {
- public static void main(String[] args) {
-
- String str1 = "abcdefghijklmn";
- String str2 = "bcdaefghijklnm";
- String str3 = "1234567890";
-
- System.out.println(getMaxSubstring1(str2,str1));
-
-
- }
- /*
- 自己写的方法
- */
- public static String getMaxSubstring(String maxStr, String minStr) {
-
- for(int x1=0,y1=minStr.length(); x1<y1; y1--) {
-
- for(int x2=x1,y2=y1; y2<=minStr.length(); x2++,y2++) {
-
- System.out.print(minStr.substring(x2,y2)+" ");
- if(contains(maxStr, minStr, x2, y2))
- return maxStr.substring(x2,y2);
- }
- System.out.println();
- }
- return "-1";
-
- }
-
- private static boolean contains(String maxStr,String minStr, int x, int y) {
-
- return maxStr.contains(minStr.substring(x,y));
- }
-
- /*
- 视频毕老师的方法
- */
-
- public static String getMaxSubstring1(String str1, String str2) {
-
- String maxStr = "";
- String minStr = "";
-
- maxStr = str1.length()>str2.length()? str1 : str2;
- minStr = maxStr == str1? str2 : str1;
- int minStrLength = minStr.length();
-
- for(int x=0; x<minStrLength; x++) {
-
- for(int y=0,z=minStrLength-x; z<=minStrLength;y++,z++) {
-
- if(contains(maxStr,minStr,y,z))
- return maxStr.contains(minStr.substring(y,z));
- }
- }
- return "";
- }
-
- }
复制代码
|
|