最短摘要问题 续上篇
在上一篇“找最小字符串”里,用了一个最傻的办法,找出关键字里的每一个字符串在内容里的位置,然后比较同时存在三个关键字时,最大位置和最小位置的差值,找出最小,实现之后一直很不甘心,觉得代码长不说,逻辑还不是那么明确,算法还那么复杂,绕来绕去,冥思苦想,睡前由生一法,早上起来试了试,哇塞,对头:
?? 在确保所有关键字都包含的情况下,每次从content尾向前挪动一个位置,都从content的头部到尾遍历一遍,碰上小的就付给result,直到完全遍历完
?输出结果:
[content]:? a c d a c b d e a a b
1 楼 arshow 2011-06-27 貌似如果这样的,时间复杂度不小。 2 楼 加州板栗 2011-06-30 arshow 写道貌似如果这样的,时间复杂度不小。
[keyword]:? b c d
[AllMatch]:
???? [c, d, a, c, b, d, e, a, a, b]
???? [d, a, c, b, d, e, a, a, b]
???? [a, c, b, d, e, a, a, b]
???? [c, b, d, e, a, a, b]
???? [c, b, d, e, a, a]
???? [c, b, d, e, a]
???? [c, b, d, e]
???? [c, b, d]
[ShortestMatch]: [c, b, d]
有好方法不 请教下 改了两次复杂度依然有点差