परिचय
इस चुनौती में, आपका काम स्ट्रिंग्स के सामान्यीकृत बाद का पता लगाना है। अनुवर्ती जरूरी नहीं है कि वे सन्निहित हों, और वे स्ट्रिंग को "चारों ओर लपेटें" भी कर सकते हैं, इसके अंत में जा रहे हैं और शुरुआत से फिर से शुरू कर सकते हैं। आप हालांकि, रैप की संख्या को कम करना चाहते हैं।
अधिक औपचारिक रूप से, चलो uऔर vकिसी भी दो तार, और हो सकता है k ≥ 0एक पूर्णांक। हम कहते हैं कि uएक के kबाद की घटना है v, अगर वहाँ ऐसे अलग सूचकांक हैं , और अधिकांश सूचकांक संतुष्ट हैं । इसका मतलब यह है कि रास्ते में इसके कुछ पात्रों को चुनते हुए, बाएं से दाएं की ओर जाते हुए और अधिकतम समय पर चारों ओर लपेटते हुए (समान रूप से, अधिकांश स्वीप्स करते हुए ) अंदर पाया जा सकता है । ध्यान दें कि कोई भी चरित्र एक रैप-अराउंड के बाद भी एक से अधिक बार नहीं चुना जा सकता है, और उस -wrapping बाद बिल्कुल साधारण अनुवर्ती है कि हम सभी परिचित हैं।i1, i2, ..., ilen(u)u == v[i1] v[i2] ... v[ilen(u)]kijij > ij+1uvkk+1v0
काम
आपके इनपुट दो नॉन-खाली अल्फ़ान्यूमेरिक स्ट्रिंग्स हैं uऔर v, और आपका आउटपुट सबसे छोटा पूर्णांक है, kजो कि uएक k-wrapping के बाद का है v। यदि ऐसा नहीं kहै, तो आउटपुट होगा -1।
उदाहरण
इनपुट पर विचार करें u := xyzyxzzxyxऔर v := yxzzazzyxxxyz। अगर हम के पात्रों के लिए तलाश शुरू uमें vएक लालची फैशन में, हम 3 बार लपेट होगा:
yxzzazzyxxxyz
>─x─────y────z┐
┌─────────────┘
└y───────x────┐
┌─────────────┘
└──zz─────x─y─┐
┌─────────────┘
└──────────x──>
इस प्रकार सही आउटपुट अधिकतम 3 पर है। ध्यान दें कि एक बार बाएं-सबसे अधिक वर्ण xका चयन कैसे किया जाता है, और फिर दूसरी स्वीप पर ध्यान नहीं दिया जाता है, क्योंकि इसे फिर से उपयोग नहीं किया जा सकता है। हालांकि, केवल 2 रैप-अराउंड के साथ एक छोटी विधि मौजूद है:
yxzzazzyxxxyz
>──────────xyz┐
┌─────────────┘
└yxzz────x────┐
┌─────────────┘
└───────y─x───>
यह पता चलता है कि एक रैप-अराउंड (यानी दो स्वीप) पर्याप्त नहीं है, इसलिए सही आउटपुट है 2।
नियम और बोनस
आप एक फ़ंक्शन या पूर्ण प्रोग्राम लिख सकते हैं, और यदि आवश्यक हो तो आप इनपुट के क्रम को भी बदल सकते हैं। सबसे कम बाइट गिनती जीतता है, और मानक खामियों को रोक दिया जाता है।
वहाँ एक है -10% के बोनस में के तहत 10 सेकंड कुल परीक्षण मामले के सभी की गणना के लिए। मैं अपनी मशीन पर अस्पष्ट मामलों का परीक्षण करूंगा; पायथन में मेरे संदर्भ कार्यान्वयन में लगभग 0.6 सेकंड लगते हैं। मेरे पास 1.86 गीगाहर्ट्ज़ डुअल कोर सीपीयू के साथ 7 साल पुराना लैपटॉप है, जिसे आप ध्यान में रख सकते हैं।
परीक्षण के मामलों
"me" "moe" -> 0
"meet" "metro" -> -1
"ababa" "abaab" -> 1
"abaab" "baabaa" -> 1
"1c1C1C2B" "1111CCCcB2" -> 3
"reverse" "reserved" -> 2
"abcdefg" "gfedcba" -> 6
"xyzyxzzxyx" "yxzzazzyxxxyz" -> 2
"aasdffdaasdf" "asdfddasdfsdaafsds" -> 2
xका उपयोग तीन अलग-अलग स्वीपों में किया जाता है। इसे केवल एक बार ही इस्तेमाल किया जा सकता है।