説明
ダイヤモンドのKataは、文字を1つ入力として受け取り、それをダイヤモンドの形で出力します。
文字を1つ受け取ると、'A'から始まり、渡された文字が最も幅の広い位置にくるダイヤモンドを出力します。
要件
- 最初の行には、'A'が1つだけ含まれます。
- 最後の行には、'A'が1つだけ含まれます。
- 最初と最後の行を除くすべての行には、同じ文字がちょうど2つ含まれます。
- すべての行は、先頭のスペースと同じ数だけ末尾にもスペースがあります。(0の場合もあります)
- ダイヤモンドは左右対称です。
- ダイヤモンドは上下対称です。
- ダイヤモンドは正方形の形をしています(幅と高さが等しい)。
- 文字がダイヤモンドの形を作ります。
- 上半分では、文字が昇順に並びます。
- 下半分では、文字が降順に並びます。
- 四隅(スペースが入る部分)は三角形です。
例
以下の例では、スペースは·で表します。
文字'A'のダイヤモンド:
A
文字'C'のダイヤモンド:
··A··
·B·B·
C···C
·B·B·
··A··
文字'E'のダイヤモンド:
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
ヒント
- この演習をテストするのは、たくさんの入力と出力をそのまま書き並べるのでなければ、なかなか厄介かもしれません。プロパティベーステストは、テストの考え方のひとつで、この種のアルゴリズムをより簡単にテストできるようにしてくれます。