int lengthOfLcs_r(const char x[], const char y[], int ix, int iy, int xsize, int ysize) { static int **lengthTable = new int*[xsize]; for (int i = 0; i < xsize; ++i) { lengthTable[i] = new int[ysize]; }
if (ix == xsize || iy == ysize) { return 0; } if (x[ix] == y[iy]) { return lengthOfLcs_r(x, y, ix + 1, iy + 1, xsize, ysize) + 1; } return max(lengthOfLcs_r(x, y, ix, iy + 1, xsize, ysize), lengthOfLcs_r(x, y, ix + 1, iy, xsize, ysize)); }