पासा पलटना
इसलिए, मैं कुछ समय पहले पासा पलट रहा था और एक चुनौती के बारे में सोचा था।
इनपुट से लिए गए जाल और चाल की सूची के साथ क्यूब को देखते हुए, अंत में नीचे की तरफ वर्ग का पता लगाएं।
मैं इस छवि का उपयोग यहां के उदाहरणों के लिए करूंगा।
इनपुट
आप चाल की सूची के साथ एक स्ट्रिंग में लेते हैं। स्ट्रिंग में केवल कैपिटल ASCII अक्षर N, S, W और E शामिल हैं। ये क्यूब को उस दिशा में एक कदम आगे बढ़ाने के लिए मेल खाते हैं।
तस्वीर में, एक एन नीचे के चेहरे को एक 6. बना देगा। इस छवि में, उत्तर कैमरे से दूर है, दक्षिण की ओर है, पूर्व दाएं है, और पश्चिम बचा है।
आप निम्न प्रारूप में एक स्ट्रिंग भी लेते हैं: 1P 2P 3P 4P 5P 6P, जहां प्रत्येक P N, S, W, E, T से एक स्थिति है, और B. T & B नीचे और ऊपर है।
संख्याएं उस संख्या के साथ चेहरा होती हैं, और अक्षर उस स्थिति का प्रतिनिधित्व करता है जिसमें चेहरा होता है। यदि यह स्पष्ट नहीं है, तो नेट हमेशा संख्या द्वारा आदेश दिया जाएगा, इसलिए 1P 2P 3P 4P 5P 6P, कभी भी 2B 1T 3N नहीं 4S 5W 6E।
छवि में स्थिति 1S 2B 3E 4W 5T 6N है।
उत्पादन
आपका कार्यक्रम नीचे की ओर का प्रतिनिधित्व करते हुए एक नंबर आउटपुट होना चाहिए।
परीक्षण के मामलों
(nothing), 1S 2B 3E 4W 5T 6N -> 2
N, 1S 2B 3E 4W 5T 6N -> 6
NS, 1S 2B 3E 4W 5T 6N -> 2
NWS, 1S 2B 3E 4W 5T 6N -> 2
NWSNWS, 1S 2B 3E 4W 5T 6N -> 2
NWSS, 1S 2B 3E 4W 5T 6N -> 3
NNNNNN, 1S 2B 3E 4W 5T 6N -> 5
SNWEEWS, 1N 2T 3E 4W 5B 6S, 6
SNEEWS, 1N 2T 3W 4S 5B 6E, 4
अन्य नियम
आप यह भी मान सकते हैं कि घन एक अनंत समतल तल पर है, शायद किसी प्रकार के घर्षण के साथ।
मानक खामियों को दूर किया, भले ही मुझे कोई नहीं मिल रहा है।
अमान्य इनपुट के लिए, आपका कोड सर्वनाश शुरू करने के अलावा कुछ भी कर सकता है।
क्योंकि यह कार्यक्रम मेरे पासा पर फिट होना चाहिए, यह जितना संभव हो उतना छोटा होना चाहिए। मैं बाइट्स में गिनता हूं, फोल्डर्स जैसी भाषाओं के लिए कुछ अपवादों के साथ ।
(nothing) -> 2
है कि कोई नेट प्रदान नहीं किया गया है, या कहीं नेट होना चाहिए?