इस इनवॉइस में, आपका काम किसी दिए गए स्ट्रक्चर के साथ सबस्ट्रिंग का पता लगाना है।
इनपुट
आपका इनपुट दो गैर-रिक्त अक्षरांकीय तार, एक पैटर्न p
और एक पाठ होगा t
। विचार यह है कि प्रत्येक वर्ण p
एक सन्निहित गैर-रिक्त विकल्प का प्रतिनिधित्व करता है, t
जो एक दूसरे के बगल में होते हैं, और p
उनके संघनन का प्रतिनिधित्व करते हैं। समान वर्णों के समान पहचान वाले पात्र; उदाहरण के लिए, पैटर्न aa
किसी भी गैर-खाली वर्ग का प्रतिनिधित्व करता है (एक स्ट्रिंग जो अपने आप को एक छोटा स्ट्रिंग समाप्त करके प्राप्त होता है)। इस प्रकार पैटर्न प्रत्येक मिलान के साथ, aa
सबस्ट्रिंग से मेल खा सकता है ।byebye
a
bye
उत्पादन
यदि पाठ 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))
: पी