JSFiddle - React, Tailwind, and code Playground

by Shashank D

JavaScript

function LCS(s1, s2) {
    var result = [];
    for (var i=0; i<=s1.length; i++) {
        result.push([]);
        for (var j=0; j<=s2.length; j++) {
            var currValue = 0;
            if (i==0 || j==0) {
                currValue = 0;
            } else if (s1.charAt(i-1) == s2.charAt(j-1)) {
                currValue = result[i-1][j-1] + 1;
            } else {
                currValue = Math.max(result[i][j-1], result[i-1][j]);
            }
            result[i].push(currValue);
        }
    }

    var i = s1.length;
    var j = s2.length;

    var s3 = '';
    while (result[i][j] > 0) {
        if(s1.charAt(i-1) == s2.charAt(j-1) && (result[i-1][j-1] +1 == result[i][j])) {
            s3 = s1.charAt(i-1) + s3;
            i = i-1;
            j = j-1;
        } else if (result[i-1][j] > result[i][j-1])
            i = i-1;
        else
            j = j-1;
    }
    return s3;
}

var arr = [
  "dm_dt_in_OCC50_Stage4_1.26",
  "dm_dt_out_OCC50_Stage4_1.26",
  "dm_dt_in_OCC50_Stage4_1.24",
  "dm_dt_out_OCC50_Stage4_1.24",
  "dm_dt_in_OCC50_Stage4_1.22",
  "dm_dt_out_OCC50_Stage4_1.22",
  "dm_dt_in_OCC50_Stage4_1.36",
  "dm_dt_out_OCC50_Stage4_1.36",
  "dm_dt_in_OCC50_Stage4_1.33",
  "dm_dt_out_OCC50_Stage4_1.33",
  "dm_dt_in_OCC50_Stage4_1.20",
  "dm_dt_out_OCC50_Stage4_1.20",
  "dm_dt_in_OCC50_Stage4_1.21",
  "dm_dt_out_OCC50_Stage4_1.21",
  "dm_dt_in_OCC50_Stage4_1.32",
  "dm_dt_out_OCC50_Stage4_1.32",
  "dm_dt_in_OCC50_Stage4_1.17",
  "dm_dt_out_OCC50_Stage4_1.17",
  "dm_dt_in_OCC50_Stage4_1.34",
  "dm_dt_out_OCC50_Stage4_1.34"
];

var common = [];

for(var i=0; i<arr.length-2; i++) {
	console.log(LCS(arr[i], arr[i+1]));
}