एमयू पहेली एक पहेली है जिसमें आप पता लगाना है कि क्या आप बदल सकते हैं है MI
में MU
निम्नलिखित कार्यों को देखते हुए:
यदि आपकी स्ट्रिंग समाप्त हो जाती है
I
, तो आपU
अंत में एक जोड़ सकते हैं । (उदाMI -> MIU
)यदि आपकी स्ट्रिंग शुरू होती है
M
, तो आप उसके बाद के भाग की एक प्रति संलग्न कर सकते हैंM
स्ट्रिंग के ।
(उदाMII -> MIIII
)यदि आपके स्ट्रिंग में लगातार तीन होते हैं
I
, तो आप उन्हें एक में बदल सकते हैंU
।
(उदाMIII -> MU
)यदि आपके तार में लगातार दो होते हैं
U
, तो आप उन्हें हटा सकते हैं। (जैसेMUUU -> MU
)।
आपका कार्य एक ऐसे कार्यक्रम का निर्माण करना है जो यह निर्धारित करता है कि क्या यह किसी भी शुरुआत और खत्म करने के लिए संभव है।
आपका कार्यक्रम इनपुट के रूप में दो तार ले जाएगा। प्रत्येक स्ट्रिंग में निम्नलिखित शामिल होंगे:
एक
M
।उनतीस तक की एक स्ट्रिंग
I
औरU
's ।
आपका कार्यक्रम फिर लौट आएगा true
दूसरा स्ट्रिंग पहले स्ट्रिंग से पहुंच योग्य है, और false
(या YPLRT) नहीं है (या आपकी प्रोग्रामिंग भाषा का प्रतिनिधित्व / YPLRT) ।
उदाहरण इनपुट और आउटपुट:
MI MII
true
MI MU
false
MIIIIU MI
true
इस जीत के लिए किसी भी भाषा में सबसे छोटा कोड।
MI
ठीक उसी M(I|U)*
जगह हैं जहां संख्या I
3. की एक संख्या नहीं है। और ऐसा सीधा चेक निश्चित रूप से छोटे कोड के लिए बनाता है। इसके अलावा, मैं मध्यवर्ती चरणों के लिए आवश्यक तार की लंबाई पर बंधे एक पूर्व-प्राथमिकता के बारे में नहीं जानता, इसलिए प्रत्यक्ष खोज केवल अव्यावहारिक हो सकती है।
MI
किसी दिए गए उपलब्ध स्ट्रिंग से शुरू होने वाली व्युत्पत्ति देने के लिए ।
IM
आपूर्ति की जाती है या क्या आउटपुट होना चाहिए MUMMI
?