一道公司面试题
时间:2011-11-07
来源:互联网
作者: jiehao 发布时间: 2011-11-07
作者: zhaghi 发布时间: 2011-11-07
O(N)复杂度
aabbcc 和 ccaabb
i=0, j=0;
i=0, j=1;
i=0, j=2;
i=1, j=3;
i=2, j=4;
i=3, j=5;
i=4, j=0;(j %= str.Length)
一直能将i走到结尾即相等,否则不等
作者: keeya0416 发布时间: 2011-11-07
用双指针
O(N)复杂度
aabbcc 和 ccaabb
i=0, j=0;
i=0, j=1;
i=0, j=2;
i=1, j=3;
i=2, j=4;
i=3, j=5;
i=4, j=0;(j %= str.Length)
一直能将i走到结尾即相等,否则不等
如果是aabbacc
bbaccaa
这种的话,需要在指针j走完第一个a之后把指针i重置为0
作者: ohmygirl 发布时间: 2011-11-07
作者: funfenffun 发布时间: 2011-11-07
如果是aabbacc
bbaccaa
这种的话,需要在指针j走完第一个a之后把指针i重置为0
想不出什么好算法,就2L的算法,加3L的改进,复杂度肯定不止O(N)了,判断相等没什么捷径的
2L写的是一个较简单的例子
当i,j所指字符不同时是不必要 i=0 的;要活学活用KMP
作者: keeya0416 发布时间: 2011-11-07
ccaabb变成ccaabbccaabb
然后判断变化后的两个链表的最大相同字串长度,如果>=n就相同反之...
复杂度参照最大公告字串复杂度
作者: xueyong4712816 发布时间: 2011-11-07
i = 0, j = 0;
i = 0, j = 1;
i = 0, j = 2;
然后i又等于0,j = 3吗?
i = 0, j = 3;
i = 0, j = 4;
... ...
引用 2 楼 keeya0416 的回复:
用双指针
O(N)复杂度
aabbcc 和 ccaabb
i=0, j=0;
i=0, j=1;
i=0, j=2;
i=1, j=3;
i=2, j=4;
i=3, j=5;
i=4, j=0;(j %= str.Length)
一直能将i走到结尾即相等,否则不等
如果是aabbacc
bba……
作者: jiehao 发布时间: 2011-11-07
把两个循环链表都变成不循环,如aabbcc变成aabbccaabbcc
ccaabb变成ccaabbccaabb
然后判断变化后的两个链表的最大相同字串长度,如果>=n就相同反之...
复杂度参照最大公告字串复杂度
作者: jiehao 发布时间: 2011-11-07
先把其中一个str = str + str,拼接起来成
然后判断别一个是否存在新拼接的str中就能实现了。
作者: yangball 发布时间: 2011-11-07
想到另一个方法
先把其中一个str = str + str,拼接起来成
然后判断别一个是否存在新拼接的str中就能实现了。
高手。。。
作者: myhaikuotiankong 发布时间: 2011-11-07
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28