Qingshan Loves Strings 2

这道题目看官方解答就好了,写的很好

我其实想到了官方解答的,但是卡在了写代码上。。

我想的是利用双指针迭代,但是分类讨论的情况很多。如果不用循环而用题目说的递归,显然更简单(其实官方题解的代码用的也是队列模拟,当然也比双指针简单)

借鉴一下题解的code吧

注意题目要求输出的是每次插入的位置,想一下应该如何输出,见代码

update 2024.7.25

一种新的证明方法:从两边向中间考虑,当第一次遇到了相等时,不妨设为两个1,于是我们在左边添加"01",右边指针向左走一个,一直这么做直到右边指针走到了一个0,然后与新添加的1匹配,假设0更多,那么现在又要在右边添加"01"了;重复上述过程可以发现,每一时刻两个指针要么都指向原串的字符,要么一个指向原串字符,另一个指向新添加的字符,于是每次操作都会让一个原串字符被遍历,最多添加次数为O(n)

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