ゴール:
事前に設定されたスイッチボードとインデックスのリストを指定すると、指定されたインデックスでスイッチを反転します。
配電盤は、いくつかのスイッチ(v
または^
)でラップ-
され、さまざまな長さの列に配置されます。スイッチボードの例を次に示します。
-v-^-v-
-^-v-
-v-^-v-
スイッチを反転/反転するとは、スイッチをv
から^
、またはから^
に変更することを意味しv
ます。
スイッチには左から右、上から下にインデックスが付けられています。たとえば、上記の例v
では、最初の行の最後が位置3にあり^
、中央の行が4にあります(1インデックスを使用)。
入力:
- スイッチボードを表す文字列(または文字列のリスト)。正規表現と一致することが保証されてい
((-[v^])+-)(\n(-[v^])+-)*
ます。 - インデックスを表す番号の空のリストは、0または1(または必要に応じて任意の番号)になります。これらは、反転する必要があるスイッチです。
出力:
- 指定されたスイッチが反転した入力と同じ形状の配電盤。指定されていないスイッチは、初期状態を保持する必要があります。
ルール:
- 入力は常に正しくフォーマットされ、指定されたインデックスが範囲外になることはありません。
- インデックスのリストはソートされ、重複はありません。
- 答えには、0、1、または任意のインデックスを使用してください。
- 出力が入力のように見える限り、末尾の空白は問題ありません。
- これはコードゴルフなので、最短のコードが優先されます。
例:
#Using 1-indexing
input: #Empty Case
[],
-v-^-v-
output:
-v-^-v-
input: #Single switch
[1],
-v-
output:
-^-
input: #Skip a line
[3,5],
-^-v-v-
-v-
-^-^-
output:
-^-v-^-
-v-
-v-^-
input: #Flip one in each line + number wrap
[3,4,6],
-^-v-v-
-v-
-^-^-
output:
-^-v-^-
-^-
-^-v-
input: #Flip 'em all
[1,2,3,4,5,6],
-^-v-v-
-v-
-^-^-
output:
-v-^-^-
-^-
-v-v-
>"-"
次の文字であるかどうかをチェックするヒント:入力文字列はで始まることが保証され-
ているため、代わりに使用しているパラメーター/引数/変数名に対してチェックできます。