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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /*
  2. 4,获取两个字符串中最大相同子串。第一个动作:将短的那个串进行长度一次递减的子串打印。
  3.         "abcwerthelloyuiodef"
  4.         "cvhellobnm"
  5.         思路:
  6.                 1,将短的那个子串按照长度递减的方式获取到。
  7.                 2,将每获取到的子串去长串中判断是否包含,
  8.                         如果包含,已经找到!。
  9. */

  10. class  StringTest3
  11. {
  12.         /*
  13.         练习四。
  14.         */
  15.         public static String getMaxSubString(String s1,String s2)
  16.         {

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

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

  19.                 min = (max==s1)?s2: s1;
  20.                
  21. //                sop("max="+max+"...min="+min);
  22.                 for(int x=0; x<min.length(); x++)
  23.                 {
  24.                         for(int y=0,z=min.length()-x; z!=min.length()+1; y++,z++)
  25.                         {
  26.                                 String temp = min.substring(y,z);
  27.                                
  28.                                 sop(temp);
  29.                                 if(max.contains(temp))//if(s1.indexOf(temp)!=-1)
  30.                                         return temp;
  31.                         }
  32.                 }
  33.                 return "";
  34.         }


  35.         public static void main(String[] args)
  36.         {
  37.                 String s1 = "cvaanm";
  38.                 String s2 = "cvhellobnm";
  39.                 sop(getMaxSubString(s2,s1));
  40.         }

  41.         public static void sop(String str)
  42.         {
  43.                 System.out.println(str);
  44.         }
  45. }
复制代码

经过验证,毕老师的代码只适用两个字符串有一个最长字符串的情况,如果有两个同样长度的最长字符串,那么只能输出靠前面的一个,因为34行的return使getMaxSubString方法结束,所以结束getMaxSubString方法的方式不能使用return,而要通过外循环条件控制循环结束,我编写代码请看一楼(主要是改了for循环的结束方式)。

评分

参与人数 1技术分 +2 收起 理由
王震阳老师 + 2 赞一个!

查看全部评分

15 个回复

正序浏览
Well done !不过一看就是毕老师的风格@sop()。
回复 使用道具 举报
必须顶一下
回复 使用道具 举报
呵呵呵。。。。
回复 使用道具 举报
娱尘 中级黑马 2014-11-28 23:21:56
13#
勇气可嘉,善于思考,楼主赞一个
回复 使用道具 举报
毕老师的教学代码也不是完美的,我在学习IO流的时候已经发现了好几处的代码缺陷PS:也就是不完美的地方。编程
本身就是一个极具魅力的学科,青出于蓝胜于蓝也是常有的事,我们进入黑马的目标也就是超越老师,程序这个东西 我在接触了这么一段时间后也觉得没有完美的代码只有更符合需求的的代码,如果我们不抱着学无止境的态度去学习计算机语言的话,那么我们终将成为一个码农,而不是一个程序员。  以上所述顺纯个人观点,本人也就是一个编程菜鸟,只是抱着这样的态度去学习罢了,希望大神们不要喷我
回复 使用道具 举报
touch_world 发表于 2014-11-28 21:07
楼主有成为大牛的潜力,向你学习

大牛还是奢求,只求进入黑马了,共同努力吧。
回复 使用道具 举报
楼主有成为大牛的潜力,向你学习
回复 使用道具 举报
楼主这么会举一反三  再接再厉
回复 使用道具 举报
楼主挺细心的,这都让你发现了。其实这样的问题多采用加入flag标记的方式,可读性要好一点。
回复 使用道具 举报

还没看到!!!
回复 使用道具 举报
java小兵 发表于 2014-11-28 12:00
这是第几天的知识点啊?

13day的,String的练习
回复 使用道具 举报
这是第几天的知识点啊?
回复 使用道具 举报
还是船长给力,看的人都不给个回复
回复 使用道具 举报
善于发现,多总结,总有一天会成为大牛,楼主加油!
回复 使用道具 举报

  1. class Test3
  2. {
  3.         public static void getSame(String str1,String str2)
  4.         {
  5.                 String longStr=str1.length()>str2.length()?str1:str2;
  6.                 String shorStr=str1.length()>str2.length()?str2:str1;
  7.                 for (int x=0;x<shorStr.length();x++ )
  8.                 {
  9.                         for (int start=0,end=shorStr.length()-x;end<=shorStr.length();start++,end++ )
  10.                         {
  11.                                 String temp=shorStr.substring(start,end);
  12.                                
  13.                                 if (longStr.contains(temp))
  14.                                 {
  15.                                         sop(temp);
  16.                                         x=shorStr.length();
  17.                                 }
  18.                         }
  19.                 }
  20.         }
  21.         public static void main(String[] args)
  22.         {
  23.                 String str1="abcwerthelloyuiodef";
  24.                 String str2="cvhellobnmabcwe";
  25.                 getSame(str1,str2);
  26.         }
  27.         public static void sop(Object obj)
  28.         {
  29.                 System.out.println(obj);
  30.         }
  31. }
复制代码

两个字符串(str1和str2)我自己改了一下

评分

参与人数 1技术分 +3 收起 理由
船长 + 3 楼主好样的,点个赞!

查看全部评分

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