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]));
}