LeetCode 5 最長回文串

2021-09-28 16:50:58 字數 678 閱讀 1606

目錄

1.題目描述

2.解決方案

給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。

示例 1:

輸入: "babad"

輸出: "bab"

注意: "aba" 也是乙個有效答案。

示例 2

輸入: "cbbd"

輸出: "bb"

方法一: 動態規劃

演算法

用二位陣列來標記字串從下標 i 到下標 j 是否為回文串。

對於當前要判斷的區間 [i, j]:

上述分析一般情形時發現,對區間 [i, j] 的判斷要依賴區間 [i+1,j-1],所以 i 應該從大變小,j 應該從小變大。並且每輪迴圈中 j 的初始值設為 i 就可以。

對於字串 "cbba" 而言,具體情況如下圖:

複雜度分析

時間複雜度:o(n^2),兩層 for 迴圈。

空間複雜度:o(n^2),使用二維陣列來標記字串從下標 i 到下表 j 是否為回文串。 

LeetCode5 最長回文串

include include include include include include using namespace std ifndef solution h define solution h 思路 從回文串的對稱點開始,依次向左向右比較,不相同的時候停止遍歷,直到找出最大的長度的回文...

Leetcode 5 最長回文串

解題思想 1.中心擴充套件法 從字串中心分別往左右兩端移動,while l 0 r易混點 回文串的起始值 i 迴圈中回文串的長度 1 2 看不懂找數帶入即可 class solution def longestpalindrome self,s str str n len s defgetlen l...

LeetCode5最長回文子串

給定乙個字串s,找到s中最長的回文子串。你可以假設s長度最長為1000。示例 輸入 babad 輸出 bab 注意 aba 也是有效答案示例 輸入 cbbd 輸出 bb 動態規劃來做,每個回文字串的子字串也是回文字串,即string是回文字串那麼它的string.substring 1,lenth ...