Một người bạn của bạn đã cho bạn chỉ dẫn đến nhà hàng tốt nhất trong thị trấn. Đó là một loạt các rẽ trái và phải. Thật không may, họ đã quên đề cập đến việc bạn cần đi thẳng bao lâu giữa các lượt đó. May mắn thay, bạn có một bản đồ đường phố với tất cả các nhà hàng trên đó. Có lẽ bạn có thể tìm ra nhà hàng họ có nghĩa là gì?
Đầu vào
Bản đồ được đưa ra dưới dạng lưới hình chữ nhật gồm các ký tự ASCII. .
là một con đường, #
là một tòa nhà, A
để Z
là những nhà hàng khác nhau. Bạn bắt đầu ở góc trên bên trái, đi về phía đông. Thí dụ:
.....A
.#.###
B....C
##.#.#
D....E
##F###
Hướng dẫn của bạn bè sẽ được cung cấp dưới dạng chuỗi (có khả năng trống) hoặc danh sách các ký tự có chứa L
s và R
s.
Đầu ra
Bạn có thể đi bộ bất kỳ con đường nào tương ứng với rẽ trái và phải trong chuỗi đầu vào, với điều kiện bạn phải tiến ít nhất một bước về phía trước trước mỗi bước, cũng như ở cuối. Cụ thể, điều này có nghĩa là nếu chuỗi bắt đầu với R
bạn không thể đi về phía nam ngay lập tức trong cột ngoài cùng bên trái. Điều đó cũng có nghĩa là bạn không thể quay ngoắt 180 ° ngay tại chỗ.
Bạn không thể đi bộ qua các tòa nhà hoặc nhà hàng trừ cái bạn đến ở cuối. Bạn có thể cho rằng góc trên cùng bên trái là a .
.
Bạn nên xuất tất cả các nhà hàng có thể đạt được theo hướng dẫn của bạn bè, dưới dạng chuỗi hoặc danh sách.
Bạn có thể cho rằng các hướng dẫn sẽ dẫn đến ít nhất một nhà hàng. Ví dụ, một đơn L
sẽ không hợp lệ cho bản đồ trên.
Một số ví dụ cho bản đồ trên:
<empty> A
R F
RR B,D
RL C,E
RLRL E
RLLR C
RLLL B
RLRR D
RLRRRR A,C
RLLLRLL B
Đặc biệt lưu ý rằng R
không đạt được B
.
Bạn có thể viết chương trình hoặc hàm, lấy đầu vào qua STDIN (hoặc thay thế gần nhất), đối số dòng lệnh hoặc đối số hàm và xuất kết quả qua tham số STDOUT (hoặc thay thế gần nhất), tham số trả về hàm hoặc tham số hàm (out).
Luật golf tiêu chuẩn được áp dụng.
Các trường hợp kiểm tra bổ sung
Đây là một bản đồ lớn hơn, lịch sự của Conor O'Brien (mà tôi đã sửa đổi một chút):
.......Y..........................######
.####.....#.##....##..######....#.###.##
B.........#.##.#..##....##...##.#.#P...#
.#.#####..#.##..#.##....##.#....#.####.#
.#.#...C..#.##...G##..#.##.#....#.#....#
.#.#.#.#..#.####.###.#..##.#....#.#.NO.#
.#.#A#.#..#.##...F###...##.#.##.#......#
.#.###....#.##....##....##.#....###....#
.#.....##...##....##...D##........###R.#
.#.##..##...##E...##..######....####...#
.....X....#.#.....................##S.T#
###########.###########M############...#
#................................###.#.#
#.#########.########.######.#.######.#.#
#......V#.....######.IJ...........##.#.#
#########.###......ZH############L##.#.#
#########.##########.###############.#.#
####K##...##########.#....#..........#.#
####....########U......##...#######Q.#.#
#####################################W.#
Và đây là một vài danh sách hướng dẫn được lựa chọn và kết quả mong đợi của họ:
<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
Câu hỏi thưởng: có một đầu vào chỉ dẫn đến I
hoặc chỉ U
? Nếu vậy, con đường ngắn nhất như vậy là gì?