风在等一个道歉

· · 题解

Source & Knowledge

2024 年 8 月语言月赛,由洛谷网校入门计划/基础计划提供。

考察字符串。

文字题解

对于一个子串 friend,我们只需要用 love 覆盖到最后一个字符 d,就可以破坏掉这样的一个子串,同时,尽可能的去覆盖下一个 friend 子串的开头。

例如,串 friendxxfriend,对于第一个子串 friend,从 d 开始覆盖,可以同时覆盖掉第二个子串 friendf,即覆盖后为 frienloveriend,从每一个子串的 d 开始覆盖,可以尽量减少 love 的使用。

循环扫描串 S,根据 S[i],S[i+1],S[i+2],S[i+3],S[i+4],S[i+5] 判断是否为 friend 子串,若是,则将 S[i+5],S[i+6],S[i+7],S[i+8] 覆盖为 love,但需要严格检查越界的情况。

视频题解