说明
钻石 kata 以字母作为输入,并输出一个钻石形状。
给定一个字母,它会打印一个以 'A' 开头、最宽处为所给字母的钻石。
要求
- 第一行包含一个 'A'。
- 最后一行包含一个 'A'。
- 除第一行和最后一行外,所有行都恰好有两个相同的字母。
- 所有行的尾部空格数量与前导空格数量相同。(也可能是 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····
提示
- 如果只是把一堆输入和输出硬编码进去,这一题测试起来可能会有点麻烦。基于属性的测试是另一种思考测试的方式,能让你更轻松地测试这类算法。