next数组求解 速解法

备注:最近复习软考发现next数组求解方法忘了,通过回忆想起来了老师的方法,以下方法仅为手算速度求解!!第一次写经验分享个人理解较浅可能存在误区,轻喷,自己写个帖子备忘

方法

默认前两位为-1和0,第三位往后循环判断它的前n位与从头开始的n位串是否有大相同?记最大n为nexti数组,最后整体➕1获得答案

看起来方法比较拗口,但是上手后解题速度很快,适合做选择题

例1:

串ababa

1.默认next数组前两位为-1和0

d51f07dfffda4334939d0a8c865cb523.png

 

2.i=3时  

5f9532bd1faf41f98d0385f9bf166fd5.png 

 

 3.i=4时9913243f3ee34e9bb487c93a574aac58.png

4.i=5时

a9a7e5996819423ca67e0b80e7ecaeda.png 

5.数组全体➕1得到答案03511575e9c4446a90301d731013ccae.png 

例2. 

1.默认

73479e6409324fcb99c05c50b6d7d001.png

2.i=3

acf1777e3e444771a5b509967bfb4fd8.png

3.i=4

42660294e9ea46fc96de030f0ce7d780.png

4.i=5时

0f08d258679d4da486848355b5f80144.png 

5.i=6时

e04845dc40794e92bb8e4935f8286aba.png 

6.i=7时

29990ac4277342c9854e8af51769d083.png 

7.i=8时

ccc679196ef0426a8050c2384a9fcc1d.png 

8.数组全体➕1得到答案

60105de75c5742f49c076cdc9b6b9b08.png 

例3. 

dbd8cc38f4064a37be912d8df1994505.png

个人计算熟练后半分钟不到就可以做出来

各位可以自己试试

答案附下

790c3d0adad643fcb3be455b87e65051.png 

过程简略画了一下386a0ef9e0294a45973593624c9e9675.png 

d809327ba28549fc8682c545982f24eb.png 

dcef04f4de20482892e712b8e8f15e54.png 

 谢谢点赞收藏!

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值