第四题字符串: 通过80%超时

第四题字符串代码:
通过80%超时,O(n)KMP做法,是python太慢了吗?
n = 9
mo = "abaabaabaab"
m = 3
m_str = ["aba","ab","abaaba"]


n = len(mo)
next = [0 for i in range(n+1)]
def getnext(n2):
    i = 0
    j = -1
    while i<n2:
        if j==-1 or mo[i] == mo[j]:
            i+=1
            j+=1
            next[i] = j
        else:
            j = next[j]
next[0]=-1
getnext(len(mo))
xun = n - next[-1]
ans = 0
for i in range(m):
    m_s = m_str[i] #input
    f = 0
    for j in range(len(m_s)):
        if m_s[j] != mo[j]:
            f = 1
            break
    if f == 0 and len(m_s)%xun == 0:
        ans +=1

print(ans)


#笔试题目#
全部评论

相关推荐

07-14 12:29
门头沟学院 Java
后端岗,实习三周感觉有点想跑路了,担心秋招被拉黑,有没有佬是字节HR知道情况的
从零开始的转码生活:你实习三周都想跑路,将来拿到offer真的愿意在这干十几二十年吗
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
一表renzha:不是你说是南通我都没往那方面想,人家真是想表达那个意思吗?
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务