2016-05-18~21:資料

  1. NumPy圖文入門

  2. 一個機器學習博客

  3. TensorFlow創(chuàng)建自己的手寫識別引擎

  4. 隨機非參數(shù)學習算法1 & 隨機非參數(shù)學習算法2


  1. 詞向量介紹博客

  2. Python數(shù)據(jù)入門

  3. 亞馬遜深度推薦


  1. 開放數(shù)據(jù)集

  2. 微博的算法概覽

  3. rnn-chinese

刷刷題

#   abacabcaba -> ^#a#b#a#c#a#b#c#a#b#a#$
#   r:最右邊回文邊界,c:最長回文中心
def manacher(_s):
    s = '#'.join('^{}$'.format(_s))
    c,r,n = 0,0,len(s)
    p = n*[0]
    for i in xrange(1,n-1):
        if r<i:p[i]=0                 #超過最右邊際則初始化為0
        else:p[i]=min(r-i,p[2*c-i])   #由回文的對稱性,未超過最右邊界的時候,可以找到當前最大回文
        while s[i+1+p[i]] == s[i-1-p[i]]:  #以當前i為中心,向左右尋找回文
            p[i]+=1
        if i+p[i]>r:     #更新最右邊界和最長回文中心
            c,r = i,p[i]+i
    maxl,maxi = max((n,i) for i,n in enumerate(p)) #找到最大回文中心的長度
    return _s[(maxi-maxl)/2:(maxi+maxl)/2]

print manacher('abacabcaba')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容