आप के एक दोस्त ने आपको शहर के सबसे अच्छे रेस्तरां के लिए दिशा-निर्देश दिए हैं। यह बाएँ और दाएँ मोड़ की एक श्रृंखला है। दुर्भाग्य से, वे इस बात का उल्लेख करना भूल गए कि आपको उन घुमावों के बीच कितनी देर तक सीधे जाने की आवश्यकता है। सौभाग्य से आपके पास उस पर सभी रेस्तरां के साथ एक सड़क का नक्शा है। शायद आप यह पता लगा सकते हैं कि वे किस रेस्तरां में थे?
इनपुट
नक्शा ASCII वर्णों के आयताकार ग्रिड के रूप में दिया गया है। .
एक सड़क, है #
कोई भवन है, A
करने के लिए Z
विभिन्न रेस्तरां हैं। आप ऊपरी बाएँ कोने में शुरू करते हैं, पूर्व की ओर। उदाहरण:
.....A
.#.###
B....C
##.#.#
D....E
##F###
आपके मित्र के निर्देशों को एक (संभावित रूप से खाली) स्ट्रिंग या L
एस और R
एस वाले पात्रों की सूची के रूप में दिया जाएगा ।
उत्पादन
आप इनपुट स्ट्रिंग में बाएं और दाएं मुड़ने वाले किसी भी पथ पर चल सकते हैं, बशर्ते कि आप उनमें से प्रत्येक के साथ-साथ अंत में कम से कम एक कदम आगे ले जाएं। विशेष रूप से इसका मतलब है कि यदि स्ट्रिंग R
आपके साथ शुरू होती है तो बाएं-सबसे कॉलम में तुरंत दक्षिण में नहीं जा सकती है। इसका मतलब यह भी है कि आप मौके पर 180 ° घूम नहीं सकते।
आप इमारतों या रेस्तरां के माध्यम से नहीं चल सकते हैं सिवाय इसके कि आप अंत में पहुंचें। आप मान सकते हैं कि शीर्ष बाएं कोने एक है .
।
आपको उन सभी रेस्तरांओं का उत्पादन करना चाहिए जो आपके दोस्त के निर्देशों के साथ एक स्ट्रिंग या सूची के रूप में पहुंच सकते हैं।
आप मान सकते हैं कि निर्देश कम से कम एक रेस्तरां को ले जाएगा। उदाहरण के 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 (या निकटतम विकल्प), फ़ंक्शन रिटर्न मान या फ़ंक्शन (आउट) पैरामीटर के माध्यम से परिणाम लिख सकते हैं।
मानक कोड-गोल्फ नियम लागू होते हैं।
अतिरिक्त परीक्षण मामले
यहाँ एक बड़ा नक्शा है, कॉनर ओ'ब्रायन के सौजन्य से (जिसे मैंने थोड़ा संशोधित किया है):
.......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
? यदि हां, तो इस तरह का सबसे छोटा रास्ता क्या है?