黑马程序员技术交流社区

标题: 第13天09练习四 String问题。 [打印本页]

作者: Geek_001    时间: 2014-6-23 19:37
标题: 第13天09练习四 String问题。
本帖最后由 Geek_001 于 2014-6-23 20:05 编辑

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

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

要求

要求

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

代码

代码

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


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

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

懂了,终于懂了,哈哈.......
作者: dispensable    时间: 2014-6-23 20:16
- -加油……不过如果理解只到这种程度,估计还要段时间才能入学啊
作者: The_king丶    时间: 2014-6-23 20:50
原理其实就是随着 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 他                               们。另外我有个问题就是,好像没有截取最大字段,只是截取字段吧?
作者: Geek_001    时间: 2014-6-23 23:08
dispensable 发表于 2014-6-23 20:16
- -加油……不过如果理解只到这种程度,估计还要段时间才能入学啊

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

截取了
String temp = min.subString(x,y);
if(max.contains(temp))
   return temp;         
作者: The_king丶    时间: 2014-6-24 01:10
没有,只是没有实现最大字符串功能吧
作者: 沈木生    时间: 2014-6-24 01:28
看得晕晕的,不过我也要睡了




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