公共字串計算

2021-09-14 04:27:36 字數 1029 閱讀 8782

公共字串計算

計算兩個字串的最大公共字串的長度,字元不區分大小寫

詳細描述:

介面說明

原型:int getcommonstrlength(char * pfirststr, char * psecondstr);

輸入引數:

char * pfirststr //第乙個字串

char * psecondstr//第二個字串

/*

求最大公共子串,使用遞推實現

假設x(i): 字串第i個字元 y(j): 字串第j個字元

dp[i][j]: 以x(i),y(j)結尾的最大子串長度

比如:x: "abcde" y:"bcdae"

dp[2][1]: 以x(2),y(1)結尾的最大子串長度

即:x遍歷到"abc", y遍歷到"bc", 都以字元'c'結尾時最大公共子串為"bc"

故:當計算dp[i][j]時,首先看x(i),y(j)的值:

(1): x(i) == y(j)

當前兩個字串結尾的字元相等,dp[i][j] = dp[i-1][j-1] + 1

即個它的長度加1

(2): x(i) != y(j)

當前兩個字串結尾的字元不相等,說明沒有以這連個字元結尾的公共子串

位元科技製作

即dp[i][j] = 0

(3): dp[0][j] 和 dp[i][0]表示以某個子串的第乙個字元結尾,最大長度為1

如果x(0) == y(j) 或者 x(i) == y(0), 則長度為1,否則為0

當dp中的所有元素計算完之後,從中找打最大的值輸出

*/#include#includeusing namespace std;

int main()

//更新最大值

if (dp[i][j] > max)

max = dp[i][j];}}

cout << max << endl;

} return 0;

}

公共字串計算

述計算兩個字串的最大公共字串的長度,字元不區分大小寫 詳細描述 介面說明 原型 int getcommonstrlength char pfirststr,char psecondstr 輸入引數 char pfirststr 第乙個字串 char psecondstr 第二個字串 知識點字串,查詢...

公共字串計算

計算兩個字串的最大公共字串的長度,字元不區分大小寫 介面說明 原型 int getcommonstrlength char pfirststr,char psecondstr 輸入引數 char pfirststr 第乙個字串 char psecondstr 第二個字串 知識點 字串,查詢 輸入 字...

牛客網 公共字串計算

題目描述 詳細描述 介面說明 原型 int getcommonstrlength char pfirststr,char psecondstr 輸入引數 char pfirststr 第乙個字串 char psecondstr 第二個字串輸入描述 輸入兩個字串 輸出描述 輸出乙個整數 示例1輸入 輸...