今日の課題は、次のような入力を行うことです。
fbcfbee
ffcabbe
debceec
bccabbe
edcfbcd
daeaafc
eebcbeb
そして、出力のように(資本金に注意し、三個の以上の文字にマッチします宝石をちりばめたようなゲームで可能な限り最高の動きBとC)を:
fbcfbee
ffcabbe
deBCeec
bccabbe
edcfbcd
daeaafc
eebcbeb
完全な仕様:
- 入力は、それぞれ小文字の
n行ですn(n任意の数字を使用できます)。 - 出力は、マッチ3ゲームで行うことができる最高の動きになり、スワップしたい2文字を大文字にします。
一致には次の優先順位が必要です(これらの例で
.は、重要でない正方形を示します)。五行
xxYxx ..X..壊れた五行
X.. Yxx x.. x..または
.X. xYx .x. .x.四列
xYxx .X..三列
xYx .X.
最も高い優先度の一致を見つけて出力する必要があります。
- 同じ優先度の一致が複数ある場合は、それらのいずれかを出力できます。
- 常に少なくとも1つの一致が存在します(一致しない場合、または必要な操作を行うとプログラムが中断する可能性があります)。
- I / Oは、任意の妥当な形式(stdin / out、ファイルの読み取りと書き込み、関数の引数/戻り値、ダイアログボックスなど)にすることができますが、ハードコードされていません(など
x="[insert input here]")。 - これはコードゴルフなので、バイト単位の最短コードが優先されます。何らかの理由でネットワークアクセスを使用すると、ネットワークからダウンロードされたすべてのバイトがスコアにカウントされます。
1
+1、しかしタイトルに抗議します。より良い動きがあるかもしれません。たとえば、2つの5を作成するものや、ドロップにより多くのものを作成するものがあります。
—
ジャスティン14年
壊れた五行もカバーし
—
ピーターテイラー14年
..x.\nxxYX\n..x.ますか?
@Peterはい、そうです。
—
ドアノブ
行パターンには、LパターンとTパターンの2つの壊れた5があります。両方を一致させる必要がありますか?
—
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ 14年
@nhahtdhはい、それを明確にするために編集します。
—
ドアノブ