求最長回文子串行(動態規劃)

2021-09-25 11:55:15 字數 583 閱讀 9037

#include#include#includeusing namespace std;

#define maxn 1000

//動態規劃求解最長回文子串行,時間複雜度為o(n^2)

int lpsdp(char *str, int n)

} return dp[0][n - 1]; //返回字串str[0...n-1]的最長回文子串行長度

}int main()

getchar();

return 0;

}

#include#include#include#include#includeusing namespace std;

int dp[100][100];//dp[i][j]表示從i到j的最長回文子串行的長度

string s;

int main()

else dp[i][j]=max(dp[i+1][j],dp[i][j-1]);

} }s.clear();

cout<<"最長回文子串行的長度為:"

}

最長回文子串行 動態規劃

所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如 aba c 對於乙個字串,可以通過刪除某些字元而變成回文字串,如 cabebaf 刪除 c e f 後剩下子串 abba 就是回文字串。要求,給定任意乙個字串,字串最大長度1000,計算出最長的回文子串行長度。如 cabebaf ...

求最長不降子串行(動態規劃)

求最長不下降子串行 動態規劃 狀態轉移方程 length i 1 length j j為data i data j 的情況下能使length j 取到最大的值 初始情況length 1 1 且length 0 0,這樣求出來的length j 才可以取到0 include int data 15 下...

最長回文序列與最長公共子串行(動態規劃)

最長回文序列 longest palindromic subsequence 回文序列 正向遍歷與反向遍歷都相同的序列 在原字串中的位置不一定連續 給定乙個字串,求其最長的回文序列的長度。例如,給定字串是 bbabcbcab 則最長回文序列的長度為7,bacbcab 為其中乙個最長回文序列。用lps...