2016-05-16:资料+最长回文子串

1. CSDN机器学习知识图谱

2. 有趣的逻辑回归介绍

3. 机器学习资料整理

4. 最长回文子串-july

5. 最长回文子串~

# 最长回文子串

def manacher(s):
    s = '#'+'#'.join(s)+'#'
    rl, maxRight,pos,maxLen= [0]*len(s),0,0,0
    for i in xrange(len(s)):
        if i<maxRight:
            rl[i] = min(rl[2*pos-i],maxRight-i)
        else:
            rl[i]=1
        while i-rl[i]>=0 and i-rl[i]<len(s) and s[i-rl[i]]==s[i+rl[i]]:
            rl[i]+=1
        if rl[i]+i-1>maxRight:
            maxRight=rl[i]+i-1
            pos=i
        maxLen=max(maxLen, rl[i])
    return maxLen-1

print manacher('tattarrattat')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容