給出兩個字串a b,求a與b的最長公共子串行(子串行不要求是連續的)。
比如兩個串為:
abcicba
abdkscab
ab是兩個串的子串行,abc也是,abca也是,其中abca是這兩個字串最長的子串行。
收起
第1行:字串a第2行:字串b
(a,b的長度 <= 1000)
輸出最長的子串行,如果有多個,隨意輸出1個。
abcicbaabdkscab
abca
#include #include #include #include #include #include using namespace std ;
typedef long long ll;
const ll inf = 0x3f3f3f3f3f3f3f3f;
const ll maxn = 1e18+999 ;
const int max = 55005 ;
int n ;
string a , b ;
int dp[1005][1005] ;
char p[max] ;
int cnt ;
int main ()
else
}int len = dp[lena][lenb] ;
p[len] = '\0' ;
int i = lena , j = lenb ;
while(dp[i][j])
} cout
}
1006 最長公共子串行Lcs
給出兩個字串a b,求a與b的最長公共子串行 子串行不要求是連續的 比如兩個串為 abcicba abdkscab ab是兩個串的子串行,abc也是,abca也是,其中abca是這兩個字串最長的子串行。input 第1行 字串a 第2行 字串b a,b的長度 1000 output 輸出最長的子串行...
1006 最長公共子串行Lcs
基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出兩個字串a b,求a與b的最長公共子串行 子串行不要求是連續的 比如兩個串為 abcicba abdkscab ab是兩個串的子串行,abc也是,abca也是,其中abca是這兩個字串最長的子串行。input 第1行 字...
1006 最長公共子串行Lcs
給出兩個字串a b,求a與b的最長公共子串行 子串行不要求是連續的 比如兩個串為 abcicba abdkscab ab是兩個串的子串行,abc也是,abca也是,其中abca是這兩個字串最長的子串行。input 第1行 字串a 第2行 字串b a,b的長度 1000 output 輸出最長的子串行...