व्याख्या
नई स्ट्रिंग बनाने के लिए अपने अक्षरों को एक दूसरे से जोड़कर दो तारों को हिलाया जा सकता है, जैसे कि दो ढेर कार्ड को एक ढेर बनाने के लिए फेरबदल किया जा सकता है।
उदाहरण के लिए, तार HELLO और WORLDफार्म का फेरबदल किया जा सकता है HWEOLRLLOD, या HEWORLLLDO, या शायद बस HELLOWORLD।
यह है नहीं एक फेरबदल करता है, तो पत्र की मूल आदेश को संरक्षित नहीं किया गया है। उदाहरण के लिए, DमेंWORLD पहले कभी नहीं देखा जा सकता Rफेरबदल किए जाने के बाद। इसका मतलब यह है कि EHLLOWRDLO, उदाहरण के लिए, एक फेरबदल नहीं है HELLOऔर WORLDभले ही इसमें सभी मूल अक्षर शामिल हों।
एक तार जुड़वा बच्चों का एक फेरबदल है अगर इसे दो समान तारों को फेरकर बनाया जा सकता है। उदाहरण के लिए, ABACBDECDEजुड़वा बच्चों का एक फेरबदल है क्योंकि यह फेरबदल ABCDEऔर द्वारा गठित किया जा सकता है ABCDE। DBEACBCADEयह जुड़वा बच्चों का फेरबदल नहीं है क्योंकि इसे दो समान तारों के फेरबदल से नहीं बनाया जा सकता है।
कार्यक्रम का विवरण
इनपुट स्ट्रिंग को देखते हुए, आउटपुट 0यदि यह जुड़वाँ का फेरबदल नहीं है, और जुड़वाँ तारों में से एक का उत्पादन करता है यदि यह जुड़वाँ का फेरबदल है।
आप मान सकते हैं कि इनपुट स्ट्रिंग में चार और बीस अक्षरों के बीच की लंबाई है और पूरी तरह से अपरकेस वर्णमाला से बना है। इसे 10 मिनट के भीतर, उचित समय पर चलाने में सक्षम होना चाहिए।
यह कोड गोल्फ है, इसलिए सबसे छोटा समाधान जीतता है।
उदाहरण I / O
> ABACBDECDE
ABCDE
> DBEACBCADE
0
> FFFFFF
FFF
> FFGGG
0
> ABBA
0
> AABB
AB
> AABAAB
AAB
मेरे पास एक उदाहरण (गैर-गोल्फ) कार्यान्वयन है ।
FFGGGइसे सुसंगत बनाने के लिए इसे संपादित किया ।
that the input string has a length inclusively between four and twenty characters, और मुझे "उपयोगकर्ता इनपुट पर कभी भरोसा न करें!", "चश्मे पर कभी भरोसा न करें।"