第四题字符串: 通过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)


#笔试题目#
全部评论

相关推荐

老板加个卤鸡蛋:HR看了以为来卧底来了
点赞 评论 收藏
分享
最喜欢秋天的火龙果很...:第一份工作一定要往大的去,工资低点没事。后面换工作会更好找,即使你去小公司,你也不可能不会换工作的。所以找大的去
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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