あなたの友人が町で最高のレストランへの道順を教えてくれました。一連の左と右のターンです。残念ながら、彼らはあなたがそれらのターンの間にまっすぐに進む必要がある時間について言及するのを忘れていました。幸いなことに、すべてのレストランがある通りの地図があります。たぶん、あなたは彼らがどのレストランを意味したかを理解できるでしょうか?
入力
マップは、ASCII文字の長方形のグリッドとして提供されます。.
道は、ある#
建物であるA
ためにZ
様々なレストランがあります。左上隅から始まり、東に進みます。例:
.....A
.#.###
B....C
##.#.#
D....E
##F###
友人の指示は、L
sとR
s を含む(潜在的に空の)文字列または文字のリストとして提供されます。
出力
入力文字列の左と右のターンに対応する任意のパスを歩くことができます。ただし、それぞれのパスの前と最後で少なくとも1ステップ先に進む必要があります。特に、文字列がで始まる場合、R
一番左の列ですぐに南に行けないことを意味します。また、その場で180°向きを変えることはできません。
最後に到達した建物以外の建物やレストランを歩くことはできません。あなたは左上隅がであると仮定するかもしれません.
。
友達の指示で到達できるすべてのレストランを、文字列またはリストとして出力する必要があります。
指示が少なくとも1つのレストランにつながると想定することができます。たとえばL
、上記のマップではシングルは無効です。
上記のマップの例:
<empty> A
R F
RR B,D
RL C,E
RLRL E
RLLR C
RLLL B
RLRR D
RLRRRR A,C
RLLLRLL B
特にR
届かないことに注意してくださいB
。
プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。
標準のコードゴルフ規則が適用されます。
追加のテストケース
以下は、Conor O'Brienの好意による大きなマップです(少し修正しました)。
.......Y..........................######
.####.....#.##....##..######....#.###.##
B.........#.##.#..##....##...##.#.#P...#
.#.#####..#.##..#.##....##.#....#.####.#
.#.#...C..#.##...G##..#.##.#....#.#....#
.#.#.#.#..#.####.###.#..##.#....#.#.NO.#
.#.#A#.#..#.##...F###...##.#.##.#......#
.#.###....#.##....##....##.#....###....#
.#.....##...##....##...D##........###R.#
.#.##..##...##E...##..######....####...#
.....X....#.#.....................##S.T#
###########.###########M############...#
#................................###.#.#
#.#########.########.######.#.######.#.#
#......V#.....######.IJ...........##.#.#
#########.###......ZH############L##.#.#
#########.##########.###############.#.#
####K##...##########.#....#..........#.#
####....########U......##...#######Q.#.#
#####################################W.#
そして、ここに方向のいくつかの選択されたリストとそれらの期待される結果があります:
<empty> Y
RR B
RLL Y
RLRR B,C,X
RLLLRRR G
RLRLRLRL I,Z
RLLRRRLRRLRR C,D,F,G,Y
RLRRLLRLLLRL B,C,Y
RLLRRLRRRLLLL F,M,N,O,Y
RLRRLLLRRRRLLLL F,M,Y
RLRRLRRRRRRRRRR E,F,Y
RLRRRLLLRLLRRLL M,N,O
RLLRRLRRLRLRLRRLLR E,U
RLRLLRLRRLRRRRRLRL F,G,I,Z
RLLRRLLRLLRRRLRRLLRR W
RLLLRRRLRRLLLLLRLLLLLL D,G,X
RLRLLRLRRLRLRRRLRLLLRR B,C,E,J,X
RLRLRLLLLRLRRRRRRLRLRRLR Y
RLRLRRRLRLLLLRLRRLLLLRLLRRL E,M,X
RLRLLLRRRLLLRLLRLLRLRRLRLRR B,E,F,K
RLRRRLLLLLLLLLLLLLLLRRRRLLL A,B
ボーナスの質問:唯一 I
または唯一の 結果になる入力はありU
ますか?もしそうなら、そのような最短経路は何ですか?