(この課題にかなりひらめきを与えた)
最初の課題では、水平ジッパーを作ることでしたが、私のパーカーを見下ろすと、私のジッパーははるかに垂直になります(そして少し壊れています):P
入力
単一の文字列(s
)と、任意の形式の整数のペア(a
およびb
)が与えられます。どこ:
a < (length-of-s / 2)
b <= ((length-of-s / 2) - (a + 1)) / 6
出力とスコアリング
プログラムは、完全なプログラムか、選択した正しい書式または配列(1行に1項目)の単一の文字列を生成する関数です。出力の文字がすべて揃っている限り、先頭と末尾のスペースと改行はオプションです。例えば。
["f r"],["u e"],["l p"],["l p"],["y i"],[" o z "],[" p n "],[" e "]
または
"f r\nu e\nl p\nl p\ny i\n o z \n p n \n e "
テストケース1の許容可能な出力です
標準の抜け穴は禁止されており、バイト単位の最短コードが優先されます。説明のない答えは勝てません。
説明
ジッパーを作成するには、まず文字列から空白または改行文字を削除する必要があります。次に、半分に折ります(詳細については、テストケース1を参照してください)。
abcde fgh ij klmnopqr
以下の2つの文字列になります。後半が逆になっていることに注意してください。
abcdefghi
そして rqponmlkj
次に、各文字列の先頭から開始して、次のように決定された間隔で、各部分文字列からの同じインデックス付き文字を1行に配置します。
[0] a r -- (a-3) five spaces
[1] b q -- (a-2) three spaces
[2] c p -- (a-1) one space
[3] d -- (a)
[4] o
[5] e
[6] n
etc...
それがジッパーのベースになります。さて、整数a
とb
。
a
zipの場所です。ジッパーの場所を特定するために、出力ラインのインデックスを使用して、ジッパーを閉じます。たとえば、[3]
上記の例で角かっこはジップがある場所です。
ジッパーが閉じる前に、上記のジッパーはa-2
、3つのスペースa-1
に閉じて1 つのスペースに閉じるまで、5つのスペースのギャップに留まる必要があります。明確にするために、上の例ではa = 3
(0インデックス)
b
私のジッパーの穴の数です。ジッパーに穴を開けるために、文字列を少し間隔を空けて再度分割します。
例えば、穴のインデックスから始まるh
、我々はの間隔を広げるh-1
、1つの空間にh
3つのスペースへとh+1
戻って1つのスペースに残し、h-2
そしてh+2
、彼らは穴の一部としてカウントされているように、ラインごとに1つの文字で。
ジップの後、各穴の間に1文字のギャップがなければなりません。これにより、ジップが穴の間で完全に接続されているように見えます。
穴のインデックスを選択できますが、それらはすべてジッパーの「閉じた」セクション内に存在する必要があります。
Again using 'abcdefghi' and 'rqponmlkj'
[0] a r -- (open)
[1] b q -- (closing)
[2] c p -- (closing)
[3] d -- zip
[4] o -- gap
[5] e -- start of hole (h-2)
[6] n f -- one space (h-1)
[7] m g -- three spaces (hole h)
[8] l h -- one space (h+1)
[9] k -- end of hole (h+2)
[10] i -- gap
[11] j
質問しない限り、すべてが理にかなっていることを願っています。質問を見越してp
、私の2番目の例の文字が2番目の部分文字列に存在することに気付く場合がありますが、その行の先頭に表示されます。これは意図的であり、1-2-1-2-のシーケンスに従う必要があります。 1-2、出力での位置に関係なく、各半分から順番に文字を取得します。
テストケース
"fully open zipper", 7, 0 | "fully closed zipper", 0, 0
fullyope reppizn | fullyclos reppizde
|
f r *Note: i particularly like this | f
u e example as it shows the reversing | r
l p of the second half of the string | u
l p causes the words to wrap from top | e
y i left to the bottom and back up | l
o z the right side | p
p n | l
e | p
| y
| i
| c
| z
| l
| d
| o
| e
| s
- 列1:「まともなパーカーには存在しないはずの長い途切れのないジッパー」、24、0
- 列2:「Lorem ipsum dolor sit amet、consectetur adipiscing ellit。Mauris faucibus molestie mi。Aliquam nec fringilla ipsum」、15、5
:
s e | L m
t i | o u
u d | r s
p o | e p
i o | m i
d h | i a
l t | p l
y n | s l
l e | u i
o c | m g
n e | d n
g d | o i
u y | l r
n n | o f
b a | r c
r n | s
o o | e
k t | i
e s | n t
n i | m a
z x | a m
i e | u
p t | e
p n | q
e | t
d | i
r | ,
l | l c
t | A o
u | . n
h | i
o | s
a | m
h | e e
t | c i
s | t t
| e
| s
| t
| s
| u
| l
| r
| o
| a
| m
| d
| s
| i
| u
| p
| b i
| i s
| c c
| u
| i
| a
| n
| f
| g
| s
| e
| i
| l r
| i u
| t a
| .
| M
編集:テストケースを追加しました
"abcde fgh ij klmnopqr","3","1"
a r
b q
c p
d
o
e
n f
m g
l h
k
i
j