Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. int max(int a, int b) {
  5.     return a > b ? a : b;
  6. }
  7.  
  8. int main() {
  9.     /*
  10.     Sample String Data to evaluate.
  11.     */
  12.     char a[] = "train";
  13.     char b[] = "rain";
  14.  
  15.     int n = strlen(a);
  16.     int m = strlen(b);
  17.  
  18.     int i, j;
  19.  
  20.     for (i = n; i >= 1; i--)
  21.         a[i] = a[i - 1];
  22.  
  23.     for (i = m; i >= 1; i--)
  24.         b[i] = b[i - 1];
  25.  
  26.     int l[n + 1][m + 1];
  27.  
  28.     printf("\nMatrix Generated\n\n");
  29.  
  30.     for (i = 0; i <= n; i++) {
  31.         for (j = 0; j <= m; j++) {
  32.             if (i == 0 || j == 0)
  33.                 l[i][j] = 0;
  34.             else if (a[i] == b[j])
  35.                 l[i][j] = l[i - 1][j - 1] + 1;
  36.             else
  37.                 l[i][j] = max(l[i][j - 1], l[i - 1][j]);
  38.             printf("%d |", l[i][j]);
  39.         }
  40.         printf("\n");
  41.     }
  42.  
  43.     printf("\nLength of Longest Common Subsequence = %d\n", l[n][m]);
  44.     return 0;
  45. }
  46.  
  47.  
  48. /*
  49. Output:-
  50.  
  51. Matrix Generated
  52.  
  53. 0 |0 |0 |0 |0 |
  54. 0 |0 |0 |0 |0 |
  55. 0 |1 |1 |1 |1 |
  56. 0 |1 |2 |2 |2 |
  57. 0 |1 |2 |3 |3 |
  58. 0 |1 |2 |3 |4 |
  59.  
  60. Length of Longest Common Subsequence = 4
  61.  
  62. */