
Count Domino Tilings

In domino tiling problem, a room of contiguous unit squares is to be tessellated with blank 2-by-1 domino tiles, each such tile placed either vertically or horizontally.
In our version of domino tiling, the shape of the room consists of vertically stacked rows that all share the common straight line left wall. The array of rows
contains the length of the individual rows, as measured in squares. You need to find and return a number of ways, how the given room may be tiled.
Of course, the task of domino tiling can be solved only for even room sizes. But this necessary condition by itself does not yet guarantee the existence of some tiling on the mutilated rooms, like in this mission. Here is an interesting and useful video to dive into problem:
Input: Array of integers (number).
Output: Integer (number).
Examples:
assert.strictEqual(dominoTile([2, 2]), 2); assert.strictEqual(dominoTile([4, 3, 2, 1]), 0); assert.strictEqual(dominoTile([5, 3, 4, 2]), 7); assert.strictEqual(dominoTile([8, 8, 8, 8, 8, 9, 9]), 1895245);
The mission was taken from Python CCPS 109. It is taught for Ryerson Chang School of Continuing Education by Ilkka Kokkarinen