亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

怎么在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

新沂市| 大连市| 于都县| 灵台县| 邳州市| 尼木县| 敦煌市| 婺源县| 越西县| 永宁县| 梅河口市| 罗源县| 灵寿县| 巴彦县| 民县| 乌拉特中旗| 当雄县| 东丽区| 黄骅市| 栾城县| 塔城市| 宽城| 宁蒗| 常德市| 建瓯市| 隆化县| 重庆市| 安陆市| 涿州市| 岐山县| 韶山市| 黄冈市| 新兴县| 临清市| 大名县| 建阳市| 湾仔区| 西乌珠穆沁旗| 工布江达县| 滕州市| 临猗县|