讨论/题目交流/🏆 第 181 场力扣周赛/
🏆 第 181 场力扣周赛

欢迎小伙伴们在这里交流分享你的参赛心得以及体验。【前往竞赛

image.png

3 分 - 按既定顺序创建目标数组
4 分 - 四因数
5 分 - 检查网格中是否存在有效路径
6 分 - 最长快乐前缀

展开讨论

第四题用不到 KMP,双指针双向扫面就行,复杂度 O(N):

class Solution:
    def longestPrefix(self, s: str) -> str:
        l, r = 0, len(s) - 1
        ls, rs = '', ''
        ret = ''
        while l < len(s) and r >= 0:
            lmove, rmove = False, False
            if len(ls) == len(rs):
                if ls == rs and ls != s: ret = ls
                lmove = True
                rmove = True
            elif len(ls) < len(rs): lmove = True
            else: rmove = True
                
            if lmove:
                while l < len(s) and s[l] != s[-1]:
                    ls += s[l]
                    l += 1
                ls += s[l]
                l += 1
            if rmove:
                while r >= 0 and s[r] != s[0]:
                    rs = s[r] + rs
                    r -= 1
                rs = s[r] + rs
                r -= 1
        return ret
展开全部 41 讨论