URL बहुत लंबे हो रहे हैं। तो, आपको एक यूआरएल को छोटा करने के लिए एक एल्गोरिथ्म को लागू करना होगा।
मैं। एक URL की संरचना
एक URL में 2 मुख्य भाग होते हैं: एक डोमेन और एक पथ । पहली स्लैश से पहले एक डोमेन URL का हिस्सा है। आप मान सकते हैं कि URL में प्रोटोकॉल शामिल नहीं है। रास्ता ही सब कुछ है।
ii। डोमेन
एक URL के डोमेन की तरह कुछ हो जाएगा: xkcd.com
meta.codegolf.stackexcchhannnge.cooom
। प्रत्येक भाग को अवधि-अलग किया जाता है, उदाहरण के लिए blag.xkcd.com
, भाग "ब्लाॅग", "xkcd" और "कॉम" हैं। यह आप इसके साथ क्या करेंगे:
यदि इसमें दो से अधिक भाग हैं, तो अंतिम दो को अलग रखें और बाकी हिस्सों के पहले अक्षर को समाप्त करें।
फिर, पहले अक्षर को दूसरे-से-अंतिम भाग तक संक्षिप्त करें।
एक अवधि और दूसरे-से-अंतिम भाग के दूसरे और तीसरे अक्षर को जोड़ें।
अंतिम भाग को त्यागें।
iii। राह
पथ तरह होगा: /questions/2140/
/1407/
। पहले की तरह, "भागों" को स्लैश द्वारा अलग किया जाता है। पथ के प्रत्येक भाग के लिए, करें:
एक स्लैश जोड़ें
यदि यह पूरी तरह से बेस-दस अंकों से बना है, तो इसे संख्या के रूप में व्याख्या करें और बेस -36 पूर्णांक में परिवर्तित करें।
अन्यथा, भाग का पहला अक्षर जोड़ें।
अंत में, एक स्लैश जोड़ें।
iv। विविध।
- यह कोड-गोल्फ है , इसलिए सबसे छोटा कोड जीतता है।
- पथ रिक्त हो सकता है, लेकिन URL हमेशा स्लैश के साथ समाप्त होगा।
- एक प्रोटोकॉल नहीं होगा (उदाहरण
http://
के लिएfile:///
) - डोमेन में कभी भी दो भागों से कम नहीं होगा।
- मानक खामियां लागू होती हैं।
उदाहरण
में: xkcd.com/72/
बाहर:x.kc/20/
में: math.stackexchange.com/a/2231/
बाहर:ms.ta/a/1pz/
में: hello.org/somecoolcodeintrepreteriijjkk?code=3g3fzsdg32,g2/
बाहर:h.el/s/
kk
और सब कुछ जो?
एक स्ट्रिंग स्ट्रिंग है, जो एक स्लैश के साथ समाप्त नहीं होनी चाहिए? इसके अलावा सभी URL स्लैश के साथ समाप्त नहीं होंगे/
, जैसेwww.something.com/path
। या इस चुनौती के उद्देश्य के लिए यह अप्रासंगिक है?