Palindromes मज़ेदार हैं, लेकिन कुछ अन्य तार बचे हुए महसूस करने लगे हैं। हम उन स्ट्रिंग्स को चंकी पैलिंड्रोम्स में बदल सकते हैं, जो उन्हें विखंडू के पैलंड्रोमिक सरणियों में विभाजित करते हैं।
उदाहरण के लिए, "abcabca"
यदि हम इसे चरित्र द्वारा पढ़ते हैं , तो स्ट्रिंग एक पैलिंड्रोम नहीं है, लेकिन हमारे पास इसे चंकी पैलिंड्रोम बनाने के तीन अलग-अलग तरीके हैं :
["abcabca"]
["a" "bcabc" "a"]
["a" "bc" "a" "bc" "a"]
जैसा कि आप देख सकते हैं, चंकी पैलिंड्रोमिकनेस एक बहुत ही समावेशी अवधारणा है; हर तार को कम से कम एक तरह से चंकी पैलिंड्रोम में बदला जा सकता है।
कार्य
एक प्रोग्राम या एक फ़ंक्शन लिखें जो इनपुट के रूप में एक स्ट्रिंग प्राप्त करता है और अपने पैलिंड्रोमिक चंकनेस को लौटाता है , अर्थात, इसके विभाजन की संख्या जो पैलिंड्रोमिक सरणियाँ हैं।
परीक्षण के मामलों
OUTPUT | INPUT
--------+---------------------------------------------
1 | ""
1 | "a"
1 | "ab"
2 | "aa"
2 | "aaa"
3 | "abcabca"
4 | "abababab"
28 | "abcabcaabababababcabca"
1 | "bbbbabababbbbababbbaaaaa"
20 | "ababbaaaabababbbaaabbbaa"
5 | "baaabaabababaababaaabbaab"
62 | "bbaaababbabbabbbabaabaabb"
2 | "a man a plan a canal panama"
25 | "ama nap lan aca nal pan ama"
93 | "SATOR AREPO TENET OPERA ROTAS"
976 | "abcabcaabcabcaabcabcaabcabcaabcabcaabcabca"
28657 | "ababababababababababaababababababababababa"
2097152 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
अतिरिक्त नियम
आप मान सकते हैं कि इनपुट में 42 या उससे कम मुद्रण योग्य ASCII वर्ण शामिल होंगे, जो वैकल्पिक रूप से आपकी भाषा के स्ट्रिंग सीमांकक और / या एक नई पंक्ति द्वारा घेरे हुए हैं।
प्रत्येक मान्य इनपुट स्ट्रिंग के लिए, आपका कोड मेरी मशीन (Intel Core i7-3770, 16 GiB RAM, Fedora 21) पर एक मिनट से भी कम समय में समाप्त होना चाहिए ।
पर्याप्त एल्गोरिथ्म के साथ, इस समय सीमा का अनुपालन करना आसान होना चाहिए। हालाँकि, आप संभवतः इनपुट स्ट्रिंग के सभी विभाजनों पर पुनरावृति नहीं कर पाएंगे।
यदि आप आउटपुट को STDOUT में प्रिंट करना चुनते हैं, तो इसका अनुसरण एक नई पंक्ति द्वारा किया जा सकता है।
मानक कोड-गोल्फ नियम लागू होते हैं।