परिचय
बॉब अपने द्वारा उपयोग की जाने वाली प्रत्येक वेबसाइट के लिए अलग-अलग पासवर्ड रखना पसंद करता है। वह एक विशेष प्रारूप में पासवर्ड चाहता है ताकि वह याद रख सके। एक पासवर्ड जनरेटर के निर्माण में उसकी मदद करें जो कोड लंबाई में जितना संभव हो उतना कम हो, क्योंकि वह अपने नाम की तरह ही सामान रखना पसंद करता है।
चुनौती
बॉब एक पासवर्ड जनरेटर का निर्माण करें जो चार मापदंडों में लेता है -
- डोमेन पता, (उदा: stackexchange.com)
- पहला नाम,
- उपनाम,
- जन्म तिथि और वर्ष।
और एक स्ट्रिंग को आउटपुट करता है जो निम्न परिवर्तनों से गुजरा है।
हर पासवर्ड लंबाई के आधार पर एक टेम्पलेट है एल डोमेन नाम की। यदि l अभाज्य है तो टेम्पलेट इस रूप में है -
[birth-date][domain-name][lastname][birth-year][symbol]
यह इस रूप का है -
[symbol][birth-year][firstname][domain-name][birth-date]।
प्रतीक क्षेत्र में डोमेन प्रकार के आधार पर मान होंगे।
.com -> $$$ .org -> &&& .net -> %%te .edu -> +++ .gov -> @@@ .mil -> >>> डिफ़ॉल्ट -> ~~~
अब, वह खेतों के ऊपर एक सीज़र साइफर भी चलाना चाहता है - [firstname][domain-name][lastname]शिफ्ट दिशा सही है यदि एल प्रमुख है तो इसे छोड़ दिया जाता है। शिफ्ट मान जन्म तिथि और वर्ष के जोड़ के मूल्य से निर्धारित होता है।
उपरोक्त प्रक्रिया के बाद, पाठ को आसानी से याद नहीं किया जा सकता है, इसलिए वह चाहता है कि सिफर पाठ को उच्चारण योग्य बनाया जाए। ऐसा करने के लिए वह हर तीसरे व्यंजन को वर्णमाला क्रम में एक स्वर से बदलना चाहता है (यानी, aeiou)।
अंत में, वह समान अक्षरों की लगातार घटनाओं को हटाना चाहता है।
उदाहरण
इनपुट - stackexchange.com बॉब विलियम्स 0894 आउटपुट - 08qraicvafyecugjigyoq94 $$$।
स्पष्टीकरण:
पासवर्ड टेम्प्लेट है [birth-date][domain-name][lastname][birth-year][symbol], क्योंकि डोमेन नाम की लंबाई stackexchangeएक प्रमुख है। प्रतीक के $$$रूप में होगा डोमेन प्रकार है .com।
आइए उन मानों को टेम्पलेट में भरें - 08stackexchangewilliams94$$$। अब सीज़र सिफर को खेतों पर चलाया जाना है [firstname][domain-name][lastname](यह इस मामले में सिर्फ अंतिम नाम है)। Shift दिशा सही है क्योंकि l अभाज्य है और शिफ्ट मान है 08+94 = 102।
तो, में 08stackexchangewilliams94$$$बदल जाता है 08qryaicvafylecugjjgykq94$$$। अब हर तीसरे लगातार व्यंजन को एक स्वर से बदल दिया जाता है - एक 08qraaicvafyeecugjigyoq94$$$ ही अक्षर के हर लगातार ences of को हटा दिया जाता है - 08qraicvafyecugjigyoq94$$$। चिंता मत करो यह बॉब के लिए उच्चारण करने योग्य है।
अतिरिक्त जानकारी
- डोमेन पता, पहला नाम और अंतिम नाम में केवल लोअरकेस अक्षर होते हैं।
- डोमेन पता हमेशा एक दूसरे-स्तर और शीर्ष-स्तरीय डोमेन से बना होगा, जैसे
stackexchange.comऔर नहींcodegolf.stackexchange.com। इसके अलावा, जैसे डोमेन की.co.ukअनुमति नहीं है , लेकिन सिर्फ.ukया.inवैध है। - वर्णमाला के क्रम में स्वर का प्रतिस्थापन चक्रीय है। मेरा मतलब बाद में
u,aप्रतिस्थापित करने के लिए किया जाता है। - सीज़र सिफर के लिए एएससीआईआई रेंज 97 - 122 समावेशी है।
- आप यहाँ बताए अनुसार इनपुट ले सकते हैं ।
- आउटपुट के लिए एक स्ट्रिंग होना चाहिए।
- जन्म तिथि और वर्ष के प्रारूप है
ddऔरyyतो02स्वीकार्य है और2नहीं है।
यह कोड-गोल्फ है, इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है। हैप्पी गोल्फिंग!
0894जो अप करने के लिए जोड़ता है, 102लेकिन स्पष्टीकरण का उपयोग करता है 08+96=106। 102मूल्य का उपयोग करने के लिए सिफर टेक्स्ट दिखाई देता है । बस एक छोटी सी असंगति है जो भ्रामक हो सकती है ...
defualtनहीं हैंdefault
stackexchange.com, नहींimg.stackexchange.com? देश डोमेन के बारे में क्या पसंद हैbbc.co.uk?