প্যালিনড্রোমগুলি মজাদার তবে অন্যান্য কিছু স্ট্রিং বাদ পড়েছে বলে মনে হচ্ছে। আমরা এই স্ট্রিংগুলিকে খণ্ডের প্যালিনড্রমিক অ্যারেগুলিতে ভাগ করে চুনকি প্যালিনড্রোমে পরিণত করতে পারি ।
উদাহরণস্বরূপ, স্ট্রিংটি "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 অক্ষর থাকবে, optionচ্ছিকভাবে আপনার ভাষার স্ট্রিং ডিলিমিটর দ্বারা ঘিরে এবং / অথবা একটি নতুন লাইন থাকবে।
প্রতিটি বৈধ ইনপুট স্ট্রিংয়ের জন্য, আপনার কোডটি অবশ্যই আমার মেশিনে এক মিনিটেরও কম সময়ে শেষ করতে হবে (ইন্টেল কোর i7-3770, 16 জিআইবি র্যাম, ফেডোরা 21)।
পর্যাপ্ত অ্যালগরিদম সহ, এই সময় সীমা মেনে চলা সহজ হওয়া উচিত। তবে আপনি সম্ভবত ইনপুট স্ট্রিংয়ের সমস্ত পার্টিশনটিতে পুনরাবৃত্তি করতে সক্ষম হবেন না।
আপনি যদি আউটপুটটি STDOUT এ মুদ্রণ করতে চান তবে এটি একটি একক নতুন লাইন অনুসরণ করতে পারে।
স্ট্যান্ডার্ড কোড-গল্ফ বিধি প্রযোজ্য।