最長對稱子串 o n 2

2021-10-02 07:41:05 字數 661 閱讀 3558

對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定is pat&tap symmetric?,最長對稱子串為s pat&tap s,於是你應該輸出11。

輸入在一行中給出長度不超過1000的非空字串。

在一行中輸出最長對稱子串的長度。

is pat&tap symmetric?
11
思路:遍歷以這個字串的每個字元為對稱軸的每個對稱子串(這些即為所有對稱子串),找其中的最大長度即為最後答案。

遍歷方法:用兩個指標從最靠近對稱軸的位置往兩邊擴充套件,每次判斷對應位置的兩個字元是否相等即可

完整**:

#include #define int long long

using namespace std;

string s;

int maxl(bool type,int pos)

while(start>=0&&edelse

start--;

ed++;

}return len;

}signed main()

cout

}

最長回文子串 動態規劃O N 2

分析 定義二維陣列dp i,j 用以表示si sj是回文 true 或不是回文 false 定義dp陣列全為false 第一次迴圈設定單個字元為回文子串 dp i i true 第二次迴圈判斷相鄰兩個字元dp i i 1 是否為回文,若是則將回文子串的起始位置設為i,長度設為2 第三次迴圈判斷長度l...

最長對稱子串

對於任何乙個位置i,當對稱的陣列是乙個奇數時,對稱的個數初始就為1,然後以i為原點向外比較i j和i j,如果i j和i j相等,則對稱的個數 2,如果不相等就立刻跳出迴圈。當對稱的陣列是乙個偶數時,對於陣列中任意乙個位置i的字母而言只需從i開始,往兩邊走,判斷i j 1和i j是否是相等的,如果相...

最長對稱子串

對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定is pat tap symmetric?最長對稱子串為s pat tap s,於是你應該輸出11。輸入格式 輸入在一行中給出長度不超過1000的非空字串。輸出格式 在一行中輸出最長對稱子串的長度。輸入樣例 is pat tap symmet...