藍橋杯 說好的高階之最長公共子串行

2021-06-21 21:50:48 字數 809 閱讀 4162



乙個序列s,若分別是兩個或多個已知序列的子串行,且是所有符合條件序列中最長的,則s稱為已知序列的最長公共子串行(lcs)。

利用最長公共子串行,可以求解出最長遞增子串行問題

/*

* * 輸入:

* 1324

*

* 1234

* * 輸出: length:3

* 子串行:1 2 4

* * 也可以用來求解最長遞增子串行問題

* 將所求序列進行排序,再求lcs即可

*/static int v;

static int p;

static string a;

static string b;

public static void main(string args)

static void cal(string a, string b) else if (v[i - 1][j] > v[i][j - 1]) else

}} for (int i : v)

system.out.println();

} system.out.println("最長子序列length:" + v[a_arr.length][b_arr.length]

+ "\n最長子序列:");

} static void get_lcs(int i, int j)

if (p[i][j] == 1)

if (p[i][j] == 2)

if (p[i][j] == 3)

}

Leetcode之最長公共子串

問題描述 編寫乙個函式來查詢字串陣列中最長的公共字首字串。如果沒有公共字首,則返回空字串 例1 輸入 flower flow flight 輸出 fl 例2 輸入 dog racecar car 輸出 說明 輸入字串中沒有公共字首。注意 所有給定的輸入都是小寫字母a z。方法1 水平掃瞄 low就是...

動態規劃之最長公共子串行 最長公共子串

題目 如果字串1的所有字元按其在字串中的順序出現在另外乙個字串2中,則字串1稱之為字串2的子串行。注意,並不要求子子串行 字串1 的字元必須連續出現在字串2中。請編寫乙個函式,輸入兩個字串,求它們的最長公共子串,並列印出最長公共子串行。例如 輸入兩個字串bdcaba和abcbdab,字串bcba和b...

動態規劃之最長公共子串行和最長公共子串

最長公共子串行,指兩個字串,子串行中最長的字串。不一定是連續字元 最長公共子串行長度 intlcs length const string str1,const string str2,vectorint veca for j 0 j str2.length j for i 1 i str1.len...