最長回文子串 回文子串行 公共子串行

2021-07-11 02:47:17 字數 682 閱讀 4695

/*

一、最長回文子串(連續)

1.manacher演算法(見前面)

2.動態規劃

*/bool p[100][100];

for(int i=0;i=2)

reutrn s.substr(start,maxlength);//?

/*二、最長回文子串行(不連續)

1.遞迴

2.動態規劃

3.將字串反轉,再求兩個字串的最長公共子串行lcs

*/int lps(char *s,int i,int j)

int lpsdp(char *s,int n)

int num[100][100];//記錄之間的最大值,下標從1開始

int flag[100][100];//記錄標記移動方向

void lcsdp()

else if(num[i][j-1]>num[i-1][j])

else

}//num[lena][lenb]為最大值

}//獲取最長公共子串行

void getlcs()

else if(flag[i][j]==2)

j--;

else

i--;

} //for(i=k-1;i>=0;--i)

// cout<}

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

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

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

題目1 求最長回文子串 題目2 求回文子串數量 忽略兩個題目對於返回結果的不同要求 前者返回最長的結果,後者返回最長的結果對應的長度即可 dp陣列的定義的區別 最長回文子串 dp i j 表示的是string s中從i到j的子串 用python語法就是s i j 1 是否為回文子串。最長回文子串行 ...

最長回文子串行 最長公共子串行 最長連續回文子串

public class solution int result new int len 1 len 1 stringbuffer sb new stringbuffer s sb sb.reverse string rev sb.tostring result 0 0 0 下面兩個for迴圈相當於...