Censoring S

利用KMP和双端队列

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

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

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

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

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

posted @   最爱丁珰  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示