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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Geek_001 中级黑马   /  2014-6-23 19:37  /  1297 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Geek_001 于 2014-6-23 20:05 编辑

代码里的z不是代表字符串较短的字符串末位指针吗?z不应该是z--吗?怎么会是z++呢?
求详解。

练习4 .PNG (19.27 KB, 下载次数: 10)

要求

要求

练习4.PNG (55.98 KB, 下载次数: 10)

代码

代码

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1

查看全部评分

10 个回复

倒序浏览
这一题是有点绕,不过楼主可以用笔记下每次循环各个变量结果就懂了
第一次循环y=0,z=s2.length()
这时获取的是c到m的字符串
然后退到外循环,x+1
y=0, z=s2.length-1
这时获取的是c到n的字符串   
这时y++, z++
获取的是v到m的子串
然后退出循环,依次递减,不知楼主看懂没,看不懂,就用纸算出各个变量的变化后的就懂了

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1

查看全部评分

回复 使用道具 举报
看着晕,容我再看看
回复 使用道具 举报
陈云阳 发表于 2014-6-23 19:51
这一题是有点绕,不过楼主可以用笔记下每次循环各个变量结果就懂了
第一次循环y=0,z=s2.length()
这时获 ...

我在纸上又比划了一遍,它是以左边指针从零开始向右移动时,右边指针的变化即同时由左向右移动
来判断的,所以右边的指针也是z++了,额,明白了,我发现有时候实在想不明白时,提出问题的同时
就理解的更深了。谢谢你!
回复 使用道具 举报
gyw520gyw 发表于 2014-6-23 19:57
看着晕,容我再看看

懂了,终于懂了,哈哈.......
回复 使用道具 举报
- -加油……不过如果理解只到这种程度,估计还要段时间才能入学啊
回复 使用道具 举报
原理其实就是随着 x字符串减少来逐段截取字符串。如果把z改为z--就达不到这个目的了
第一次循环
abcwerthelloyuiodef
cvhellobnm
y             z       Y跟Z的指针在这里

第二次循环
abcwerthelloyuiodef
cvhellobnm
y           z         Y跟Z的指针在这里,并且y与z向左一直截取字符对比是否有相同。

第三次循环

abcwerthelloyuiodef
cvhellobnm
y         z                  Y跟Z的指针在这里,并且y与z向左一直截取字符对比是否有相同。

到第N次执行

abcwerthelloyuiodef
cvhellobnm
yz                                    Y跟Z的指针在这里,经过这次截取完毕。查看是否与max有相同字段并return 他                               们。另外我有个问题就是,好像没有截取最大字段,只是截取字段吧?
回复 使用道具 举报
dispensable 发表于 2014-6-23 20:16
- -加油……不过如果理解只到这种程度,估计还要段时间才能入学啊

尽力而为吧!加油!:handshake
回复 使用道具 举报
The_king丶 发表于 2014-6-23 20:50
原理其实就是随着 x字符串减少来逐段截取字符串。如果把z改为z--就达不到这个目的了
第一次循环
abcwerthel ...

截取了
String temp = min.subString(x,y);
if(max.contains(temp))
   return temp;         
回复 使用道具 举报
没有,只是没有实现最大字符串功能吧
回复 使用道具 举报
沈木生 来自手机 中级黑马 2014-6-24 01:28:15
11#
看得晕晕的,不过我也要睡了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马