题意理解:
求解最长的回文;
题目分析:
1. 通过遍历完成,但算法的复杂度过高(O(N3));
2. 采用动态规划,复杂度为O(N2)(先前以为所谓的动态规划,就是像《算法导论》里车间的那个例子,从最终决策节点向终端节点进行递归,最终获得最优解。其实,只要是最终最优决策依赖于过程最优决策的方式都是动态规划)
解题代码:
class Solution {
public:
string longestPalindrome(string s) {
int sLen=s.length();
if(sLen<=1){
return s;
}
bool dp[sLen][sLen];
int maxLen=1;
int pos=0;
for(int i=0;i
class Solution {
private:
bool isPalindromic(string s){
if(s.length()<=1){
return true;
}
int sLen=s.length();
int halfLen=sLen/2;
for(int i=0;imaxSubStr.length()){
maxSubStr=t;
cout<<"maxSubStr= "<