Diamond

Diamond

Medium

Instructions

The diamond kata takes as its input a letter, and outputs it in a diamond shape. Given a letter, it prints a diamond starting with 'A', with the supplied letter at the widest point.

Requirements

  • The first row contains one 'A'.
  • The last row contains one 'A'.
  • All rows, except the first and last, have exactly two identical letters.
  • All rows have as many trailing spaces as leading spaces. (This might be 0).
  • The diamond is horizontally symmetric.
  • The diamond is vertically symmetric.
  • The diamond has a square shape (width equals height).
  • The letters form a diamond shape.
  • The top half has the letters in ascending order.
  • The bottom half has the letters in descending order.
  • The four corners (containing the spaces) are triangles.

Examples

In the following examples, spaces are indicated by characters.

Diamond for letter 'A':

A

Diamond for letter 'C':

路路A路路
路B路B路
C路路路C
路B路B路
路路A路路

Diamond for letter 'E':

路路路路A路路路路
路路路B路B路路路
路路C路路路C路路
路D路路路路路D路
E路路路路路路路E
路D路路路路路D路
路路C路路路C路路
路路路B路B路路路
路路路路A路路路路

Source

Seb RoseThe link opens in a new window or tab
Edit via GitHub The link opens in a new window or tab
Scala Exercism

Ready to start Diamond?

Sign up to Exercism to learn and master Scala with 94 exercises, and real human mentoring, all for free.