チャレンジ
次のような友人に地図を渡しました:
|
/
|
/
|
\
|
\
D
上部で始まり下部で終わる単純なマップ。悲しいことに、あなたの友人はそれを取得しません。彼がそれを読むことができるようにマップをデコードできますか?
入力
入力は、以下からなる文字列であり|、/、\、D、^、Y、 (空間)、および改行。
|同じ列にとどまるように指示します。\右下の列に移動するよう指示します1。/左および下の列に移動するように指示します1。D宛先をマークします。^(存在する場合)パスの分割を示します。Y(存在する場合)パスの再結合を通知します。のように扱い|ます。
入力は、一種のパスを作成するように配置されます。
|
|
\
|
^
/ \
/ |
D |
2つのパスの間には常にスペースがあり、すべてのパスは再結合するか、入力の最後の行に到達します。マップごとに1つの分割のみがあります。入力マップの長さに制限はありません。2つ以上のパスが存在することはありません。
出力
出力は方向の文字列である必要があります。
- 「L」は、友人にLを左に動かし、一歩前進するように指示する必要があります。
- 「Rは、」移動にあなたの友人を教えてくださいR IGHTと前進1歩を踏み出します。
- 「F」は友人に1歩先に進むように指示する必要があります。
入力マップ例の場合、出力は次のようになります。
F F L F R R R
あなたの友人は地図の一番上から始まり、地図を下に向けていることに注意してください。彼の観点から指示を与えます。「^」のインスタンスの場合、プログラムは宛先(D)に至るパスを選択できる必要があります。2つのパスが再結合する場合、プログラムは、最も直線的なパス(|s が最も多いパス)を選択する必要があります。ルートはスペースで区切り、 Dで終わる必要があります。
例
入力
|
|
\
\
^
/ |
| |
\ |
\ \
\ \
\ /
Y
D
出力
F F L L L F F F L L R F
左端のパスには1しか含まれていないため、|3を持つ右端のパスを使用します。
入力
\
|
/
|
\
|
/
D
出力
L F R F L F R
入力
/
\
/
\
^
\ \
D \
出力
R L R L R L
その他の詳細
- これはコードゴルフであるため、8月19日の次の水曜日までに最も短いコードを持つ人が勝ちます。
- 建設的なフィードバックを歓迎し、大いに感謝します。
- A Map to Hidden Treasureに部分的に触発された
- タイトルをよりクリエイティブなものに変更してください。
- 私が犯した間違いを見つけた場合は、修正してください。
- そしてもちろん、楽しんでください。
ありがとうございました!
少し遅いかもしれませんが、UndefinedFunctionがJavaScriptでのコーディングの勝者です!入ってくれたすべての人に感謝します。他のエントリは受け付けられません。
Lため^と2 L2のために/?そして、なぜ例のF最後にさらに2つ追加したのYですか?
L LますL L L。の例はYまだ1最後にあり、他のエラーもあるようです。F F R R R F F F R R L Fルールを正しく理解しているかのようにマップを読みました。