最長回文子串問題

2021-07-27 03:24:16 字數 736 閱讀 6500

最長回文子串問題是乙個經典問題,成熟的演算法有很多,這篇部落格採用的方案是基於longest common substring的,關於longest common substring可參考 這裡。

**也是參照上篇部落格修改的

#include 

#include

#include

using

namespace

std;

class solution

vector

> l(len, vector

(len, 0)); // l記錄相同子串的長度

//vectormaxsubstr(len);

for (i = 0; i < len; i++)

else

if (maxsubstrlen == l[i][j] && maxsubstr[k] != s.substr(i + 1 - maxsubstrlen, maxsubstrlen))

//有多個長度相同的maxsubstr, 且要排除多個maxsubstr內容相同的情況,如當str1="a", str2="aaaa"

maxsubstr[++k] = s.substr(i + 1 - maxsubstrlen, maxsubstrlen);

}else

l[i][j] = 0;}}

return k;

}};int main()

最長回文子串問題

最長回文子串 定義 給定字串str,如s 滿足以下條件 1 s是str的子串 2 s 是乙個回文字串 則 s是str的回文字串。這個演算法的要求是求出str的最長回文子串。乙個容易犯的錯誤 源字串和反轉字串的最長公共子串。其實這個想法錯誤的 eg str abcefdcfecba 反轉後 str a...

最長回文子串問題

最近找實習刷題中,遇到好多問題,有coding2小時還報錯的無奈,也有戰勝100 的孤獨,謹在此記錄一二,與君共勉。給定乙個字串 s,找到 s中最長的回文子串。你可以假設 s 的最大長度為1000 來自leetcode第5題 public class solution 開闢陣列存放所有字串回文狀態 ...

最長回文子串 最長回文子串行

1.最長回文子串行 可以不連續 include include include include using namespace std 遞迴方法,求解最長回文子串行 intlps char str,int i,int j intmain include include include using n...