黑马程序员技术交流社区

标题: Java基础--String练习4--获取两个字符串中最大相同子串 [打印本页]

作者: michael_wlq    时间: 2015-9-14 19:39
标题: Java基础--String练习4--获取两个字符串中最大相同子串
本帖最后由 michael_wlq 于 2015-9-14 19:42 编辑

获取两个字符串中最大相同子串:
例如字符串"abcwerthelloyuiodef"和 "cvhellobnm"  
思路:  1.将短的那个子串按照长度递减的方式获取到;      
            2. 将每获取到的子串去长串中判断是否包含,如果包含,则找到最长子串。
实现示例
  1. public class StringTest4 {
  2.         public static String getMaxSubString(String s1, String s2) {
  3.                 String max = "", min = "";
  4.                 max = (s1.length() > s2.length()) ? s1 : s2;
  5.                 min = (max == s1) ? s2 : s1;

  6.                 for (int x = 0; x < min.length(); x++) {
  7.                         for (int y = 0, z = min.length() - x; z != min.length() + 1; y++, z++) {
  8.                                 String temp = min.substring(y, z);
  9.                                 //sop(temp);
  10.                                 if (max.contains(temp))// 等价于if(s1.indexOf(temp)!=-1)
  11.                                         return temp;
  12.                         }
  13.                 }
  14.                 return "";
  15.         }

  16.         public static void main(String[] args) {
  17.                 String s1 = "cvhellobnm";
  18.                 String s2 = "abcwerthelloyuiodef";
  19.                 sop(getMaxSubString(s2, s1));
  20.         }

  21.         public static void sop(String str) {
  22.                 System.out.println(str);
  23.         }
  24. }
复制代码


作者: 史世锋    时间: 2015-9-14 21:17
感谢分享哇




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2