设主串S='abcdabcababcba',子串t='ababab',求解以下问题:求出模式T的Next[]值
过点D作DE⊥AB于点E,过点C作CF⊥AB于点F,
梯形ABCD中,AB∥CD,∠DAB=∠CBA=45°,DE=CF,
在△ADE和△BCF中,∠DAE=∠CBF∠DEA=∠CFB=90°DE=CF
△ADE≌△BCF(AAS),AE=BF,∵AB=10cm,CD=4cm,
AE=BF=3cm,△ADE是等腰直角三版角形,DE=AE=3cm,
当直线PM过点D点时,AM=AE=3cm,t=MN+AM=3+5=8(s);当0<权t<5时,y=1 2
扩展资料:
从目标串s=“s0s1...sn-1”的第一个字符开始和模式串t="t0t1...tm-1"中的第一个字符比较,若相等,则继续逐个比较后续字符,否则从目标串s的第二个字符开始重新与模式串t的第一个字符进行比较;
以此类推,若从模式串s的第i个字符开始,每个字符依次和目标串t中的对应字符相等,则匹配成功,返回i,否则,匹配失败,返回-1。
采用BF算法进行模式匹配的过程如图所示。首先i,j分别扫描主串和模式串。i=0,j=0,当前字符相同时均增1,匹配到i=2,j=2失败为止,修改i=i-j+1=1(回溯到前面),j=0,...;
继续这一过程直到i=4,j=0,这时所有字符均相同,i,j递增到模式串扫描完毕,此时i=10,j=5,返回i-t.length=5,表示t是s的子串,且位置为5。