A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 深井看海 中级黑马   /  2012-11-24 22:09  /  1370 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

获取两个字符串中最大相同子串, 能把这题目详解下吗?
我连题意都不是很明白,什么是子串?能也把题意详解下吗?

2 个回复

倒序浏览
最大子串的含义 :
比如一个字符串   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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马