看下面的字符串。注意到模式吗?
ABEFNOPEFGH 直流GQI 人力资源部 陆纪SK DTL 暨 BAZYXWV N 环氧乙烷 DP CQ BAZYXWVUTSR
正如某些人可能已经注意到的那样,它基本上是字母的螺旋形,行/列之间的距离逐渐增加1个空格/换行符。
严谨的定义
- 让我们有一个计数器c,它最初是0。
- 我们从左到右写出字母表的前c + 1个字母:
A
。 然后,从顶部到底部的下一个(C + 1)(C + 2)/ 2字母(附加
B
):AB
。从左到右,下一个(c +1)(c + 2)/ 2(加
C
):AB C
从下至上,接下来的c +1个字母(加
D
):AB DC
到达周期的终点。因此,让我们增加c(变为1)。然后,它从第一步开始,唯一的区别是,从本循环的最后一个元素开始,我们使用下一个c + 1个字母,而不是使用字母表的前c + 1个字母(在这种情况下,因此,我们继续进行)。当到达,它的周期从后。
D
EFG...
Z
A
任务
给定整数N(对于1索引为正数,对于0索引为负数),输出螺旋的前N个循环。
规则
您可以使用小写字母或大写字母,但是您的选择必须一致(只能使用其中之一,不允许混用)。
可接受的输出格式:多行字符串,代表行的字符串列表,包含多个字符列表的列表(每个字符代表一行)或其他您认为合适的格式。如果您不选择第一种格式,最好包含漂亮的代码版本。
这是代码高尔夫球,因此满足要求的最短代码(以字节为单位)(每种语言)将获胜!
测试用例
输入整数将通过换行符与其对应的输出分开,并且测试将使用破折号分隔。请注意,这些是1索引的。
1个 AB 直流电 -------- 2 ABEF 直流 MH 立志 -------- 3 阿贝诺夫 DC GQ 人力资源部 LKJI S DT 铜 BAZYXWV ------- 4 ABEFNOPEFGH 直流GQI 人力资源部 陆纪SK DTL 暨 BAZYXWV N 环氧乙烷 DP CQ BAZYXWVUTSR ------- 5 ABEFNOPEFGHFGHIJ 直流GQIK 吉尔吉斯斯坦 LKJI SKM DTLN 酷摩 BAZYXWV NP EOQ DPR CQS BAZYXWVUTSR T RU QV PW 牛 NMLKJIHGFEDCBAZY ------ 6 ABEFNOPEFGHFGHIJSTUVWX DC GQIKY HR LKJI SKMA DTLNB CUMOC BAZYXWV NPD EOQE DPRF 中国质量监督总局 BAZYXWVUTSR TH 瑞 QVJ 密码 OXL NMLKJIHGFEDCBAZY M 序号 反渗透 合格品 PQ 要么 NMLKJIHGFEDCBAZYXWVUTS