藍橋杯省賽真題 最大公共子串(動態規劃)

2021-10-09 02:02:20 字數 758 閱讀 1544

最大公共子串長度問題就是:

求兩個串的所有子串中能夠匹配上的最大長度是多少。

比如:「abcdkkk」 和 「baabcdadabc」,

可以找到的最長的公共子串是"abcd",所以最大公共子串長度為4。

下面的程式是採用矩陣法進行求解的,這對串的規模不大的情況還是比較有效的解法。

請分析該解法的思路,並補全劃線部分缺失的**。

#include

#include

#define n 256

intf

(const

char

* s1,

const

char

* s2)}}

return max;

}int

main()

注意:只提交缺少的**,不要提交已有的**和符號。也不要提交說明性文字。

看題目的意思:根據a[i-1][j-1],來求a[i][j]

a[i]

[j]=a[i-1]

[j-1]+

1

為什麼加一,因為只有乙個字元相等(通過上面的來求下面的值)

a[i]

[j]=a[i-1]

[j-1]+

1;

藍橋杯第八屆省賽JAVA真題 最大公共子串

最大公共子串長度問題就是 求兩個串的所有子串中能夠匹配上的最大長度是多少。比如 abcdkkk 和 baabcdadabc 可以找到的最長的公共子串是 abcd 所以最大公共子串長度為4。下面的程式是採用矩陣法進行求解的,這對串的規模不大的情況還是比較有效的解法。請分析該解法的思路,並補全劃線部分缺...

藍橋杯 最大公共子串

描述 大公共子串長度問題就是 求兩個串的所有子串中能夠匹配上的最大長度是多少。比如 abcdkkk 和 baabcdadabc 可以找到的最長的公共子串是 abcd 所以最大公共子串長度為4。下面的程式是採用矩陣法進行求解的,這對串的規模不大的情況還是比較有效的解法。請分析該解法的思路,並補全劃線部...

藍橋杯 最大公共子串

最大公共子串長度問題就是 求兩個串的所有子串中能夠匹配上的最大長度是多少。比如 abcdkkk 和 baabcdadabc 可以找到的最長的公共子串是 abcd 所以最大公共子串長度為4。下面的程式是採用矩陣法進行求解的,這對串的規模不大的情況還是比較有效的解法。請分析該解法的思路,並補全劃線部分缺...