Int LCS (string str1, string str2) // returns the longest common string length {// creates a matrix int ** martix; martix = new int * [str1.length () + 1]; for (INT I = 0; I <= str1.length (); I ++) {martix [I] = new int [str2.length () + 1];} // initialization matrix for (INT I = 0; I <= str1.length (); I ++) martix [I] [0] = 0; For (Int J = 0; j <= str2.length (); j ++) martix [0] [J] = 0; // fill matrix for (INT I = 1; I <= str1.length (); I ++) {for (Int J = 1; j <= str2.length (); j ++) {If (str1 [I-1] = str2 [J-1]) {martix [I] [J] = martix [I-1] [J-1] + 1;} else {martix [I] [J] = 0 ;}}} // find the maximum int max (0), IMAX (0), Jmax (0); For (INT I = 0; I <= str1.length (); I ++) {for (Int J = 0; j <= str2.length (); j ++) {If (martix [I] [J]> MAX) {max = martix [I] [J]; IMAX = I; Jmax = J ;}} cout <"the longest length of a common string is:" <max <Endl; cout <"the longest Public String is:"; for (INT I = max; I> 0; I --) {cout <str1 [IMAX-I];} cout <Endl; For (INT I = 0; I <= str1.length (); I ++) {Delete [] martix [I];} Delete [] martix; return Max ;}
Simple implementation of Longest Common subsequences