次の文字列を見てください。パターンに気づきましたか?
ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL CUM BAZYXWV N EO DP CQ BAZYXWVUTSR
気づいたかもしれませんが、基本的にはアルファベットのらせん状で、行/列間の距離は1スペース/改行で徐々に増加しています。
厳格な定義
- 最初は0であるカウンターcを用意しましょう。
- アルファベットの最初のc + 1文字を左から右に書きます
A
。 次に、上から下に次の(c + 1)(c + 2)/ 2文字(add
B
):を追加しますAB
。左から右へ、次の(c + 1)(c + 2)/ 2(add
C
):AB C
そして、下から上へ、次のc + 1文字(add
D
):AB DC
サイクルの終わりに達しました。したがって、cをインクリメントしてみましょう(1になります)。次に、最初のステップから戻ります。唯一の違いは、アルファベットの最初のc + 1文字を使用する代わりに、このサイクルの最後の要素から始まる次のc + 1文字を使用することです(
D
この場合、EFG...
)に進みます。にZ
達すると、から循環しA
ます。
仕事
整数N(1インデックスの場合は正、0インデックスの場合は非負)を指定すると、最初のを指定すると、スパイラルの Nサイクルが。
ルール
小文字または大文字のアルファベットを使用できますが、選択は一貫している必要があります(そのうちの1つのみを使用し、ミキシングは許可されません)。
これらの抜け穴に注意しながら、任意のプログラミング言語で標準メソッドのいずれかを使用して入力を取得し、出力を提供できます。デフォルトではが禁止されているます。
許容される出力形式:複数行の文字列、行を表す文字列のリスト、それぞれが1行を表す文字の複数のリストを含むリスト、またはその他の適切なもの。最初の形式を選択しない場合は、きれいに印刷されたバージョンのコードを含めると便利です。
これはcode-golfであるため、要件を満たす(各言語の)バイト単位の最短コードが優先されます!
テストケース
入力整数は、対応する出力によって改行で区切られ、テストはダッシュを使用して区切られます。これらは1インデックスであることに注意してください。
1 AB DC -------- 2 ABEF DC G MH LKJI -------- 3 アベフノップ DC GQ MHR LKJI S DT CU BAZYXWV ------- 4 ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL CUM BAZYXWV N EO DP CQ BAZYXWVUTSR ------- 5 ABEFNOPEFGHFGHIJ DC GQIK MHRJL LKJI SKM DTLN CUMO BAZYXWV NP EOQ DPR CQS BAZYXWVUTSR T RU QV PW OX NMLKJIHGFEDCBAZY ------ 6 ABEFNOPEFGHFGHIJSTUVWX DC GQIKY MHRJLZ LKJI SKMA DTLNB CUMOC BAZYXWV NPD EOQE DPRF CQSG BAZYXWVUTSR TH RUI QVJ PWK OXL NMLKJIHGFEDCBAZY M SN RO QP PQ または NMLKJIHGFEDCBAZYXWVUTS