The Hollow Diamond

The Hollow Diamond

Your function should return a multiline string of unique lowercase letters in alphabetical order. The characters should be placed in a form of hollow rhombus (diamond), along its edges, starting from the top vertex.

For this purpose you are given three values (for their constraints see Preconditions):

  • side - number of letters in each side of the rhombus;
  • length - total number of letters you should use;
  • cw - clockwise flag, which shows in what direction the letters must go (if true - letters should be placed in clockwise direction).

If it's not enough length to complete the form, complement it with "*". The rhombus should not have white spaces at the right. Here is an example with arguments and expected result:

example

Input: Three arguments: side as integer (number), length as integer (number) and clockwise flag as logic (boolean).

Output: Multiline string (string).

Examples:

assert.strictEqual(hollowDiamond(3, 8, true), "  a\n h b\ng   c\n f d\n  e");
assert.strictEqual(hollowDiamond(3, 6, false), "  a\n b *\nc   *\n d f\n  e");
assert.strictEqual(
    hollowDiamond(4, 10, false),
    "   a\n  b *\n c   *\nd     j\n e   i\n  f h\n   g"
);
assert.strictEqual(
    hollowDiamond(5, 16, true),
    "    a\n   p b\n  o   c\n n     d\nm       e\n l     f\n  k   g\n   j h\n    i"
);

Preconditions:

  • 26 >= length >= 0;
  • side > 1;
  • (side-1)*4 >= length.