Dynamic programming to check dynamic behavior of an array in JavaScript


We are required to write a JavaScript function that takes in an array of strings, ordered by ascending length.

The function should return true if, for each pair of consecutive strings, the second string can be formed from the first by adding a single letter either at the beginning or end.

For example: If the array is given by −

const arr = ["c", "ca", "can", "acan", "acane", "dacane"];

Then our function should return true

Therefore, let’s write the code for this function.

Example

The code for this will be −

const arr = ["c", "ca", "can", "acan", "acane", "dacane"];
const isProgressive = arr => {
   for(let i = 0; i < arr.length-1; i++){
      const nextLength = arr[i+1].length;
      if(arr[i+1] === arr[i+1][0] + arr[i] || arr[i+1] === arr[i] + arr[i+1][nextLength-1] ){
         continue;
      };
      return false;
   };
   return true;
};
console.log(isProgressive(arr));

Output

The output in the console will be −

true

Updated on: 19-Oct-2020

426 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements