91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Python中找回文子串

發布時間:2021-04-27 17:25:29 來源:億速云 閱讀:216 作者:Leah 欄目:編程語言

怎么在Python中找回文子串?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Python主要用來做什么

Python主要應用于:1、Web開發;2、數據科學研究;3、網絡爬蟲;4、嵌入式應用開發;5、游戲開發;6、桌面應用開發。

1、雙指針兩邊擴展

遍歷指針為i, j=i+1, i左移,j右移。判斷是否相等將長度,下標賦給臨時變量,最后切片返回。唯一的大坑。回文字符串長度可以是奇數也可以是偶數。奇數的時候,內層循環從i-1開始。邊界條件也需要處理好。

class Solution(object):
        
    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        n = len(s)
        maxL, maxR, max = 0, 0, 0
        for i in range(n):
            # 長度為偶數的回文字符串
            start = i
            end = i + 1
            while start >= 0 and end < n:
                if s[start] == s[end]:
                    if end - start + 1 > max:
                        max = end - start + 1
                        maxL = start
                        maxR = end
                    start -= 1
                    end += 1
                else:
                    break
    
            # 長度為奇數的回文子串
            start = i - 1
            end = i + 1
            while start >= 0 and end < n:
                if s[start] == s[end]:
                    if end - start + 1 > max:
                        max = end - start + 1
                        maxL = start
                        maxR = end
                    start -= 1
                    end += 1
                else:
                    break
        return s[maxL:maxR+1]

2、Manacher算法

由于在輸入預處理的步驟中,將所有的回文子字符已經轉為奇數長度。所以在下面的操作中,只需要將輸入的每一個字符,都當做一個回文子字符的中心位即可。不需要考慮偶數長度的回文子字符。

'''
@author: Yizhou Zhao
'''
# 設置 radius[i] = 1, 因為字符本身也是一個回文數
radius[i] = 1
while(string[i-radius[i]] == string[i+radius[i]]):
    radius[i] += 1

看完上述內容,你們掌握怎么在Python中找回文子串的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

刚察县| 岳阳市| 灵武市| 隆昌县| 涪陵区| 禄丰县| 习水县| 盐源县| 苍山县| 鲁山县| 乃东县| 成武县| 富宁县| 青浦区| 武汉市| 永胜县| 临江市| 祁阳县| 康乐县| 阜城县| 姜堰市| 句容市| 湖州市| 兰西县| 安溪县| 响水县| 凉城县| 沧州市| 宁晋县| 申扎县| 荔浦县| 钟祥市| 化德县| 安岳县| 海阳市| 乐亭县| 丽江市| 额尔古纳市| 哈巴河县| 富顺县| 双辽市|