Censoring S

利用KMP和双端队列

这一道题目中间会删除字符,考虑到这种动态的过程我们一般会用链表,栈或者队列维护

这里为了方便最后的输出用双端队列

考虑KMP的过程,他其实对字符串是不是在连续的一个存储空间里并没有要求,也就是说,如果我们给了一堆字符,即使不是按照字符数组那种放在连续的存储空间里面,只要我们知道了每一个字符的\(next\)数组,我们就可以递推下去(因为KMP不要求高效率访问某一个字符)

具体来说,假设双端队列里面存放的是还未删除的字符,对于一个新加入的字符,用KMP相同的过程跑一次,如果长度达到要求直接删除就好

如果不太清楚上面说什么直接看洛谷的代码,很easy可以看懂

posted @ 2024-01-24 14:51  最爱丁珰  阅读(3)  评论(0编辑  收藏  举报