इस इनवॉइस में, आपका काम किसी दिए गए स्ट्रक्चर के साथ सबस्ट्रिंग का पता लगाना है।
इनपुट
आपका इनपुट दो गैर-रिक्त अक्षरांकीय तार, एक पैटर्न p और एक पाठ होगा t । विचार यह है कि प्रत्येक वर्ण pएक सन्निहित गैर-रिक्त विकल्प का प्रतिनिधित्व करता है, tजो एक दूसरे के बगल में होते हैं, और pउनके संघनन का प्रतिनिधित्व करते हैं। समान वर्णों के समान पहचान वाले पात्र; उदाहरण के लिए, पैटर्न aaकिसी भी गैर-खाली वर्ग का प्रतिनिधित्व करता है (एक स्ट्रिंग जो अपने आप को एक छोटा स्ट्रिंग समाप्त करके प्राप्त होता है)। इस प्रकार पैटर्न प्रत्येक मिलान के साथ, aaसबस्ट्रिंग से मेल खा सकता है ।byebyeabye
उत्पादन
यदि पाठ tमें एक विकल्प है जो pमेल खाता है, तो आपका आउटपुट वह सबस्ट्रिंग होगा, जिसमें :वर्णों के अनुरूप तार के बीच कॉलोन डाले गए हैंp । उदाहरण के लिए, यदि हमारे पास t = byebyenowऔर p = aa, फिर bye:byeएक स्वीकार्य उत्पादन होता है। मिलान विकल्प के लिए कई विकल्प हो सकते हैं, लेकिन आप उनमें से केवल एक का ही उत्पादन करेंगे।
अगर t एक मेल खाने वाला विकल्प नहीं है, तो आपका आउटपुट एक उदास चेहरा होगा :(।
नियम और स्पष्टीकरण
अलग-अलग वर्णों के pसमान समरूप पदार्थों के अनुरूप हो p = abaसकते हैं , इसलिए स्ट्रिंग से मेल खा सकते हैं AAA। ध्यान दें कि पात्रों को गैर-खाली तारों के अनुरूप होना चाहिए; विशेष रूप से, अगर इससे pअधिक है t, तो आउटपुट अवश्य होना चाहिए :(।
आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं, और आप दो इनपुट के क्रम को भी बदल सकते हैं। सबसे कम बाइट गिनती जीतता है, और मानक खामियों को रोक दिया जाता है।
परीक्षण के मामलों
प्रारूप में दिया गया pattern text -> output। ध्यान दें कि अन्य स्वीकार्य आउटपुट मौजूद हो सकते हैं।
a Not -> N
aa Not -> :(
abcd Not -> :(
aaa rerere -> re:re:re
xx ABAAAB -> A:A
MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA
x33x 10100110011001 -> 10:1001:1001:10
abcacb 0a00cca0aa0cc0ca0aa0c00c0aaa0c -> c:a0aa:0c:c:0c:a0aa
abccab 0a00cca0aa0cc0ca0aa0c00c0aaa0c -> a:a:0c0:0c0:a:a
abcbcab 0a00cca0aa0cc0ca0aa0c00c0aaa0c -> :(
abcbdcab 0a00cca0aa0cc0ca0aa0c00c0aaa0c -> 00:c:ca0aa0c:c:0:ca0aa0c:00:c
O(2^((n * (n + 1))/2)): पी