Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script>
- function numOfNeighbour( mat, i, j,rows,cols)
- {
- var count = 0;
- // UP
- if (i > 0 && mat[i - 1][j] && mat[i - 1][j]==='X') count++;
- // LEFT
- if (j > 0 && mat[i][j - 1] && mat[i][j - 1]==='X') count++;
- // DOWN
- if (i < rows-1 && mat[i + 1][j] && mat[i + 1][j]==='X') count++;
- // RIGHT
- if (j < cols-1 && mat[i][j + 1] && mat[i][j + 1]==='X') count++;
- return count;
- }
- function findPerimeter( mat)
- {
- var perimeter = 0;
- var rows=mat.length;
- var cols=mat[0].length;
- // Traversing the matrix and finding ones to
- // calculate their contribution.
- for (var i = 0; i < rows; i++)
- for (var j = 0; j < cols; j++)
- if (mat[i][j] && mat[i][j]==='X')
- perimeter += (4 - numOfNeighbour(mat, i ,j,rows,cols));
- return perimeter;
- }
- console.log("perimeter of ['XOOXO', 'XOOXO', 'OOOXO', 'XXOXO', 'OXOOO'] is ",findPerimeter(['XOOXO', 'XOOXO', 'OOOXO', 'XXOXO', 'OXOOO'])); // 24
- console.log("perimeter of ['XOOO', 'XOXO', 'XOXO', 'OOXX', 'OOOO'] is " ,findPerimeter(['XOOO', 'XOXO', 'XOXO', 'OOXX', 'OOOO'])); //18
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement