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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 灵感   /  2012-8-4 17:04  /  4954 人查看  /  28 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

回帖奖励 +2 黑马币

学习一下
回复 使用道具 举报

回帖奖励 +2 黑马币

路过看一下,顺便学习一下
回复 使用道具 举报
谭培龙 发表于 2012-8-4 17:54
下面这图是我的思路图画的比较烂。 这题是要小串自减去和大串比较看是否属于大串
...

给力!!!本来没看下面在自己写,后来翻到中间看到哥们如此给力的解答,我直接CTRL+A+delete 把写的删掉了,图文并茂,太给力了!领教!:handshake
回复 使用道具 举报
谭培龙 发表于 2012-8-4 17:54
下面这图是我的思路图画的比较烂。 这题是要小串自减去和大串比较看是否属于大串
...

不是两端同时自减的,你也理解错了,而且长字符串它是不自减的吧
回复 使用道具 举报

回帖奖励 +2 黑马币

19楼讲解已经很详细了,我是看了四五遍才明白过来。
回复 使用道具 举报

回帖奖励 +2 黑马币

本帖最后由 胡文凡 于 2012-8-6 09:40 编辑

这段代码理解起来先是要理清它的思路:
默认s2为短串没错。然后是要看s1与s2的最大子串,就将s2按各种方法截取子字符串,要遍历完各种截取方法,然后看s1中是否包含了这段子串,有的话并且长度最长就是要求的最大子串了。
这个方法好处在遍历s2的截取方法中,每层循环按照截取的长度自减。遍历的完并且每层外循环截取的长度都自减1。如果有符合要求的子串就直接返回,因为那就是要的最大子串了。具体分析:
第一层外循环截取s2:     0~s2.length                 长度:s2.length(从0开始计)
第二层外循环截取s2:     0~s2.length-1
                                      1~s2.length                 长度:s2.length-1

第三层外循环截取s2:     0~s2.lenth-2
                                      1~s2.lenth-1
                                      2~s2.lenth                   长度:s2.lenth-2
依次类推。。。
如果有两个最大子字符串,则返回从左至右最先截取到的。
应该就是这样吧。。。。
补充一下,不是默认s2为短串。应为如果截取的长度过大比s1大的话。还是不能满足判断条件s1.contains(temp),得不到返回,所以不用默认s2是短串

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

回复 使用道具 举报
{:soso_e179:}
回复 使用道具 举报

回帖奖励 +2 黑马币

楼主不要刷楼!否则后果自负!
回复 使用道具 举报
杨志 发表于 2012-8-6 11:42
楼主不要刷楼!否则后果自负!

不好意思,真不是故意的,以后不会了
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马