#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...