黑马程序员技术交流社区

标题: 获取两个字符串中最大相同子串 [打印本页]

作者: 深井看海    时间: 2012-11-24 22:09
标题: 获取两个字符串中最大相同子串
获取两个字符串中最大相同子串, 能把这题目详解下吗?
我连题意都不是很明白,什么是子串?能也把题意详解下吗?
作者: 段海涛    时间: 2012-11-24 22:22
最大子串的含义 :
比如一个字符串   abcdef
另一个字符串是  sdkgfabcdlznmd
这两个字符串中最大相同子串就是  abcd  

实现算法
  1. package notrue.study.temp;

  2. /*
  3. 思路:
  4. 1,将短的那个子串按照长度递减的方式获取到。
  5. 2,将每获取到的子串去长串中判断是否包含,
  6. 如果包含,已经找到!。
  7. */

  8. public class SubFind
  9. {

  10. public static String getMaxSubString(String s1,String s2)
  11. {

  12. String max = "",min = "";

  13. max = (s1.length()>s2.length())?s1: s2;

  14. min = (max==s1)?s2: s1;

  15. for(int x=0; x<min.length(); x++)
  16. {
  17. for(int y=0,z=min.length()-x; z!=min.length()+1; y++,z++)
  18. {
  19. String temp = min.substring(y,z);


  20. if(max.contains(temp))//if(s1.indexOf(temp)!=-1)
  21. return temp;
  22. }
  23. }
  24. return "";
  25. }


  26. public static void main(String[] args)
  27. {
  28. String s1 = "abcd";
  29. String s2 = "cvabcllobnm";
  30. System.out.println(getMaxSubString(s2,s1));
  31. }

  32. }
复制代码





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