परिचय
जो लोग नहीं जानते हैं, उनके लिए एक पैलिंड्रोम तब होता है जब एक स्ट्रिंग पीछे की ओर स्ट्रिंग के बराबर होती है (इंटरपंक्शन, रिक्त स्थान आदि के अपवाद के साथ)। पैलेंड्रोम का एक उदाहरण है:
abcdcba
यदि आप इसे उल्टा करते हैं, तो आप समाप्त हो जाएंगे:
abcdcba
जो समान है। इसलिए, हम इसे एक पैलिंड्रोम कहते हैं। चीजों को पलटने के लिए, आइए एक स्ट्रिंग के उदाहरण पर नज़र डालें:
adbcb
यह कोई तालमेल नहीं है। इसे पलिंड्रोमाइज करने के लिए, हमें उल्टे स्ट्रिंग को प्रारंभिक स्ट्रिंग के दाईं ओर प्रारंभिक स्ट्रिंग में मर्ज करने की आवश्यकता है , जिससे दोनों संस्करण निष्क्रिय हो जाएंगे। कम, बेहतर।
पहली चीज़ जो हम आज़मा सकते हैं, वह है:
adbcb
bcbda
^^ ^^
सभी वर्ण मेल नहीं खाते हैं, इसलिए यह उलट स्ट्रिंग के लिए सही स्थिति नहीं है। हम एक कदम दाईं ओर जाते हैं:
adbcb
bcbda
^^^^
यह भी सभी वर्णों से मेल नहीं खाता है। हम दाईं ओर एक और कदम बढ़ाते हैं:
adbcb
bcbda
इस बार, सभी वर्ण मेल खाते हैं । हम दोनों स्ट्रिंग को बरकरार रखते हुए विलय कर सकते हैं । अंतिम परिणाम है:
adbcbda
यह पैलिंड्रोमाइज्ड स्ट्रिंग है ।
काम
एक स्ट्रिंग (कम से कम एक वर्ण के साथ) को केवल लोअरकेस अक्षर (या अपरकेस, यदि वह बेहतर रूप से फिट बैठता है) को देखते हुए, पैलिंड्रोमाइज्ड स्ट्रिंग को आउटपुट करता है ।
परीक्षण के मामलों
Input Output
abcb abcba
hello hellolleh
bonobo bonobonob
radar radar
hex hexeh
यह कोड-गोल्फ है , इसलिए कम से कम बाइट्स जीत के साथ जमा करना!
obonobo
जा सकता है , तो परीक्षण मामले का एक बेहतर समाधान होगा।
bono b o nob
एक पूरा वाकया है । भगवान और बोनो में क्या अंतर है? भगवान राउंड डबलिन भटकने का नाटक नहीं करते; बोनो; ;-)